spatie/there-there-cli
A command-line tool for There There that lets you interact with the There There API from your terminal. Install it globally with Composer, log in per workspace profile, and manage tickets—list, show, reply, forward, and update—right from the CLI. Full docs at there-there.app.
download-attachment now saves a usable filethere-there download-attachment --media=MEDIA_ULID > screenshot.png
Previously the response body came out behind a Response is not JSON (...) line, with a trailing newline and with any <...> bytes eaten by the console formatter, so the saved file was corrupt. Fixed upstream in spatie/laravel-openapi-cli 1.5.0, which writes non-JSON bodies through untouched.
Get the media ULID from the url or download_url of an entry in a message's attachments[] or inline_images[] in show-ticket.
Rebuilds the binary. 0.8.0 was tagged on the spec resync but shipped the PHAR built for 0.7.1, so it still carried the old API spec: show-ticket was missing and get-tickets-ticket was still there. If you installed 0.8.0, update.
Everything in 0.8.0 now actually ships:
operationIds, so they match the documented ones. show-ticket rather than get-tickets-ticket, list-tickets rather than get-tickets, and so on across every command.patch-company is gone; use update-company.
Full Changelog: https://github.com/spatie/there-there-cli/compare/0.7.1...0.8.0
there-there login now links to the correct API token page. The printed URL pointed at /app/settings/user/api-tokens, which returned a 404. It now points at /settings/account/api-tokens.Invalid API token., even when the token was valid and the server returned a different error. Genuine 401s still say Invalid API token.; everything else now shows the server's status and message.show-ticket now returns inline_images[] on each message. These are images embedded inside the email body (typically bug screenshots customers paste in). Each item exposes id, name, mime_type, size, content_id, url (matches the <img src> in body_html), and download_url. The bytes can be fetched with the same Bearer token the CLI uses; the skill docs include a curl recipe.trigger_type enum on automation rules (on_new_ticket, on_inbound_message) which had drifted from the API.data key).X-Workspace-Id header to every request, so tokens scoped to multiple workspaces work correctly.localhost, 127.0.0.1, ::1, and *.test). Previous versions disabled verification unconditionally.~/.there-there/config.json is now written with 0600 permissions since it contains API tokens.CredentialStore, a shared Pest helper, and extra tests covering the new behaviors.You can now store credentials for multiple workspaces using named profiles.
# Log in to multiple workspaces
there-there login --profile=spatie
there-there login --profile=ohdear
# List all profiles
there-there profiles
# Switch the default profile
there-there use spatie
# Run a command against a specific profile
there-there list-tickets --profile=ohdear
When logging in without --profile, the profile is automatically named after the workspace.
there-there profiles lists all configured profilesthere-there use {profile} switches the default profilelogin accepts --profile to name the profilelogout accepts --profile to remove a specific profile, or --all to remove all--profile to override the active profile for that invocationHow can I help you explore Laravel packages today?