Reqursor Development and Reqursor Platform are now one product.

See what changed

Command line

Everything the dashboard does also has a command. How to run the commands on your server, and how repository mode works from a checkout.

Most teams use Reqursor Development through the dashboard. Everything the dashboard does also has a command, for scripts, for CI and for when you have a terminal on the server and no browser.

This page is for a self-hosted install with your own key, where you have a terminal on the server.

The same program runs two ways:

  • The ticket queue's commands work on an install's data folder: projects, tickets, the worker, users, the license and backups.
  • Repository mode runs the pipeline inside a checkout of your own, set up by a reqursor.yaml file in the repository. It suits a developer's machine and CI. It has no dashboard, no queue and no services.

Every command on this page is a single line. reqursor-dev <command> --help lists a command's options.

Running commands on an install

Run commands as the service's user, so the files they create keep the right owner. Never run them as root: a file that root creates in the data folder locks the services out.

  • Bare metal. Put the command at the end:

    sudo -u reqursor sh -c 'set -a && . /etc/reqursor-dev/reqursor-dev.env && /opt/reqursor-dev/current/venv/bin/reqursor-dev <command>'
  • Docker, from the deploy folder:

    docker compose exec web reqursor-dev <command>
  • Windows, in PowerShell as Administrator:

    $env:REQURSOR_DEV_DATA_DIR='C:\ProgramData\ReqursorDev'; & 'C:\Program Files\Reqursor Development\current\venv\Scripts\reqursor-dev.exe' <command>

The commands

CommandWhat it does
reqursor-dev serverServes the dashboard. On a fresh data folder it prints the setup code the wizard asks for.
reqursor-dev workerRuns queued tickets and Autopilot. --once runs one job and exits.
reqursor-dev projectProjects: create, list, show, sync, detect, export, import, archive, unarchive, set-autopilot, set-git-token, set-tracker-token.
reqursor-dev ticketTickets: create, list, show, edit, ready, draft, move, cancel, retry, run, plan, stop, extend-budget, intervention.
reqursor-dev importImports a project's tracker issues as tickets.
reqursor-dev jobJobs: list, cancel.
reqursor-dev claudeThe connection to your model provider: set-key, connect, set-model, models, test, show.
reqursor-dev usageWhat tickets cost, per stage. Read only.
reqursor-dev secretEncrypted secrets: set, list, delete. Values are never shown.
reqursor-dev adminDashboard users: create-user, list-users, reset-password. Also the install's budget: budgets.
reqursor-dev licensestatus, activate, buy, claim, import, offline-request, transfer.
reqursor-dev backup and restoreBack up and restore the install. See Backups, updates and rollback.
reqursor-dev updatecheck, download, install, status. Bare metal only.
reqursor-dev maintenanceMaintenance agents: status, run, runs. See Maintenance agents.
reqursor-dev bug-huntBug Hunt: status, run, findings, gate.
reqursor-dev diagnosticsWrites the diagnostics bundle for support.
reqursor-dev doctorChecks the config, the agent, the model connection, git, the checks and the isolation.
reqursor-dev versionPrints the version.

Secrets are never taken on the command line. claude set-key, project set-git-token and project set-tracker-token ask for the secret without echoing it. You can also pipe it in, or name an environment variable that holds it with --from-env.

A first project from the terminal

This does what the first steps of the dashboard do. On a packaged install, add the prefix from the section above to each command.

reqursor-dev claude set-key
reqursor-dev project create "Acme App" --repo-url https://github.com/acme/app.git --default-branch main
reqursor-dev project set-git-token acme-app
reqursor-dev project sync acme-app
reqursor-dev project detect acme-app --apply
reqursor-dev ticket create --project acme-app --title "Add a health endpoint" --body "Add GET /health for the load balancer." --acceptance "GET /health returns HTTP 200" --ready
reqursor-dev worker --once
reqursor-dev ticket show RD-1
  • project create prints the project's ID, made from its name (acme-app).
  • detect --apply fills in the build, test, lint and type check commands you have not set, and warns when a tool they need is missing.
  • A ticket needs at least one acceptance criterion before it can be ready.
  • worker --once runs one queued job and exits. If it ran nothing because of a problem (the AI connection or the isolation is unavailable, or there is no license), it prints why and exits with status 1. Plain reqursor-dev worker keeps running, and Ctrl+C stops it at the next safe point and queues the running ticket again. A packaged install runs the worker as a service.
  • ticket list, ticket show and job list take --json.
  • Each job's run log is in the data folder under runlog, with secrets masked.

Users from the terminal

reqursor-dev admin create-user [email protected] --role owner adds the first Owner without the setup wizard. reqursor-dev admin reset-password <email> sets a new password and ends the old sessions. Both read the password from a hidden prompt or from stdin. This is also how you get back in when nobody can sign in and no mail server is set up.

Recording time you spent

reqursor-dev ticket intervention RD-1 --minutes 15-30 --kind code_fix records the time a person spent on a ticket, so its cost shows what a person still had to do. --minutes is one of 0-5, 5-15, 15-30, 30-60, 60-120 or 120+. --kind is one of clarification, code_fix, manual_commit, environment_fix, architecture_decision, retry_hint or review_only. --note adds a line, with secrets masked. A record is kept for good and cannot be edited.

Repository mode

Repository mode runs the pipeline in a checkout of your own, for a developer's machine or CI. It runs on your own key only, under a license bought for your own key.

Install it

The release artifact carries its own Python and every package, with their hashes locked. On Linux (amd64 or arm64), in the folder that holds the artifact:

tar -xzf reqursor-development-<version>-linux-<arch>.tar.gz
reqursor-development-<version>-linux-<arch>/python/bin/python3 -m venv ~/reqursor-dev-venv
cd reqursor-development-<version>-linux-<arch> && ~/reqursor-dev-venv/bin/pip install --no-index --find-links wheels --require-hashes -r requirements.lock
source ~/reqursor-dev-venv/bin/activate

Keep the virtual environment outside the repositories you work on. A run refuses to start when it lies inside the checkout, because the agent could then rewrite code that runs outside its sandbox.

Repository mode needs a license that allows work, kept in the same data folder the queue commands use. Activate one with reqursor-dev license activate, which reads the key from a hidden prompt or from stdin, or buy one with reqursor-dev license buy. reqursor-dev license status says where it stands. For an unattended runner, name the variable that holds the key: reqursor-dev license activate --from-env <VAR>. Keep the data folder between runs: a new one is a new install.

Repository mode is always paid on your own key and never with Reqursor Credits. Under a license on Reqursor Credits, run, watch and canary start nothing and say so. Runs start from the dashboard.

Run it

Run these from your project's checkout. The first line puts your Anthropic API key in the shell's environment without leaving it in your shell history: paste the key and press Enter.

read -rs ANTHROPIC_API_KEY && export ANTHROPIC_API_KEY
reqursor-dev init
reqursor-dev doctor --check-claude
reqursor-dev preflight
reqursor-dev list --spec 3
reqursor-dev run --spec 3
reqursor-dev status
  • init writes reqursor.yaml, a secrets file that Git ignores, and docs/tickets/, the folder the starter markdown work source reads. It adds .reqursor-dev/ to .gitignore. Edit reqursor.yaml next: at least the base branch, the work source and your check commands.
  • doctor checks the setup. --check-claude also asks the provider, which costs one call.
  • preflight runs your checks on the base branch and exits with an error when they fail. Fix that first.
  • list finds work items without running the agent. run runs the pipeline. status shows what happened.
  • Never put a key in reqursor.yaml, which is committed.

Only isolation keeps the key out of the agent's reach. Without it the agent runs as your account and can read the key. Set sandbox.strategy: bubblewrap in reqursor.yaml to refuse to run without isolation. doctor reports which isolation applies.

Unattended

For an always-on checkout, poll the work source:

reqursor-dev watch --resume --spec "label:agent-ready" --idle-min 60 --idle-max 900

Always pass --resume to an unattended watch or run. It skips every ticket that already shipped and has not changed since, where a restarted watcher would otherwise work on it again and spend model budget. Keep the .reqursor-dev/state folder between runs. Reqursor Development does not restart itself, so put a process supervisor such as systemd above it.

Drift checks

Schedule these daily to catch a silent model or prompt regression:

reqursor-dev canary
reqursor-dev check-ship-rate --threshold 0.6 --baseline-days 14 --current-days 1

canary runs a small synthetic ticket set through the live pipeline and notifies you on any unexpected outcome.

The Windows install has no sandbox

On Windows, agents run without the isolation the Linux installs give them. Use a machine you dedicate to it. See Agent isolation and secrets.

Stuck on something? Ask us.

Write to support with what you see. From a self-hosted install, add the diagnostics bundle: How to get help says what is in it.