@matrice-technologies/fixit-cli
v0.12.0
Published
Browse and triage Fixit product feedback from the terminal, and from coding agents
Downloads
1,842
Maintainers
Readme
@matrice-technologies/fixit-cli
Browse and triage Fixit product feedback from the terminal — and from coding agents, which use the same commands.
npm install -g @matrice-technologies/fixit-cliNo runtime dependencies; requires Node 20 or newer.
Connect
fixit loginThat is the whole setup — no host to enter, no token to copy. It shows a short
code, opens your browser, and waits while you approve it. The browser is where
you choose which workspace, and optionally which single project, this machine
may touch. Credentials are saved to ~/.fixit/config.json with owner-only
permissions.
Self-hosting? Point it at your own instance:
fixit login --host https://fixit.your-company.comfixit whoami # what this machine is connected to
fixit logout # forget the local credentialslogout only deletes the local file; revoke the token itself under
Workspace → API tokens.
Without a browser
CI and headless machines can skip the login entirely by setting the environment:
export FIXIT_TOKEN=fxt_...
export FIXIT_HOST=https://fixit.your-company.com # only if self-hosted
export FIXIT_PROJECT=marketing-site # only if the token is workspace-wideTo pin one repository to a project, put those in a .env.fixit file — the CLI
searches upwards from the working directory, so it works from any subdirectory.
Add it to .gitignore.
Precedence is environment, then .env.fixit, then the login file, so a repo or
CI job can point the same binary elsewhere without logging out.
Commands
fixit projects # projects this token can reach, with counts
fixit list # feedback, newest first
fixit list --status received # only untouched reports
fixit list -q "checkout" # search title and note
fixit show marketing-site/40 # full detail: note, element, logs, screenshot
fixit claim marketing-site/40 -m "on it"
fixit release marketing-site/40 -m "fixed in X"
fixit status marketing-site/40 released
fixit comment marketing-site/40 "text"Naming a report
A report is project/number — marketing-site/40. The number counts from 1
within each project, so the project slug is what makes it unambiguous.
With a default project set (--project, FIXIT_PROJECT, or a project-scoped
login) a bare number works:
fixit show 40A uuid is accepted in place of the number, for links and scripts that hold one.
Options: -p/--project, -s/--status, -k/--kind, -q/--search, -n/--limit,
-m/--message, --json.
Add --json to any command to get machine-readable output:
fixit list --status received --json | jq -r '.data[] | "\(.reference) \(.title)"'What show gives you
Everything the widget captured with the report: what the user wrote, the CSS selector of the element they pointed at, console errors with stack traces, failed network requests, and a signed screenshot URL valid for an hour. That is usually enough to locate the bug without reproducing it by hand.
Using it from an agent
The commands map onto a workflow: list --status received to find work, show
to understand it, claim before editing, release when the fix is verified.
Fixit also ships an installable Claude Code skill that drives exactly that loop, and an MCP server exposing the same operations as tools. See the main repository.
Exit codes
0 on success, 1 on any failure — a bad token, an unknown id, or an
unreachable host. Errors go to stderr with the API's own message.
