Skip to content

Getting started

What you need

  • Rust (stable toolchain) and Node.js 20.9 or later with pnpm 9.
  • The platform prerequisites for Tauri apps: Microsoft C++ Build Tools and WebView2 on Windows, Xcode Command Line Tools on macOS, or WebKitGTK and the usual build packages on Linux.
  • At least one supported agent: Claude Code, Codex 0.130 or later, or Cursor.

Build from source

Until the first release there are no installers; the download page will list them. Get the code and build it:

git clone https://github.com/arjunpundeer7/runmarq.git
cd runmarq
pnpm install
cargo build --release -p runmarq-cli
pnpm build:desktop

pnpm install installs the JavaScript workspace, cargo build builds the runmarq command, and pnpm build:desktop bundles the desktop app with the command included. You can also use only the command-line tool; the desktop app is optional.

Connect an agent

The desktop app walks you through this on first launch: it detects installed agents, shows the exact file and entries it will add, and asks before writing. From a terminal, the same steps are:

runmarq collector start
runmarq integrations setup claude
runmarq integrations verify

Setup prints the change and asks for confirmation. Add --dry-run to only preview, or --project <dir> to configure a single project instead of every project. Replace claude with codex or cursor for the other agents.

Hooks call a copy of runmarq kept in runmarq's data folder, so moving or updating the app does not break them. Existing hooks and settings are preserved and a backup is written before every change.

See your first estimate

Start a new session in the connected agent and send a prompt. The run appears in the desktop app and in runmarq status within a second, with an estimate that is refined as the agent works. The integration changes from “waiting for first event” to “connected” once that first event arrives.

runmarq status
runmarq history

Early estimates are deliberately wide, because runmarq starts from conservative built-in values. They narrow as your own runs are recorded. How estimates work explains why.

More of the estimator switches on as history builds up: a phase simulation after ten runs with tool activity, a range calibrated to your machine after about 34 finished runs, and a learned model after 100. Insights → Estimation model shows which models are in use and what each one is waiting for.

Choose what is measured

Besides hook events, runmarq reads token counts from Claude Code and Codex transcripts, measures working-tree changes with git, and compares each prompt with earlier ones through a salted word vector. Each can be turned off in Settings → Estimation signals; estimates keep working without them, with less to go on.

Use it from the terminal

The desktop app makes the runmarq command available in new terminals during setup, or later with Settings → Use the runmarq command in new terminals.

runmarq wait returns when the run in progress ends, with exit code 0 only if it finished, so you can chain your next step onto it. runmarq statusline prints one line for your prompt, tmux or Claude Code's status line, and runmarq eval shows how the estimates have held up on your own runs.

runmarq wait && npm run deploy
runmarq statusline
runmarq eval

Command line reference

Codex: start it through runmarq

Codex has no hook for “the session ended”. Starting Codex through runmarq lets it close runs cleanly when the process exits. Your terminal, keystrokes and exit code are passed through unchanged.

runmarq run -- codex

Check everything

runmarq doctor

Doctor reports the collector, hook latency, each integration and any pending step, and exits with a nonzero status if something needs attention. Status, doctor, history and the integration commands accept --json for scripting.

Remove runmarq

runmarq forget
runmarq integrations remove claude
runmarq collector stop

runmarq forget deletes your history and needs the collector running, so it comes first; skip it to keep your history. Removing an integration deletes only the entries runmarq added. In the desktop app, also turn off Settings → Use the runmarq command in new terminals. To remove everything, delete the data folder afterwards: %LOCALAPPDATA%\runmarq on Windows, ~/Library/Application Support/runmarq on macOS, or ~/.local/share/runmarq on Linux.