Velofy Dexter

Version 3.1By invitation

A proprietary multi‑agent coding harness that keeps working when you stop.

Dexter is a terminal coding agent. Point it at any repository and any model, cloud or local, and it plans, edits, runs and verifies. When a job splits into independent parts, it hands them to parallel subagents on its own and shows each one working in a live tmux pane.

dexter · ~/src/app · zai/glm-5.3
An interactive session. The model splits a review into three independent tasks on its own; the working line sits above the input box.

01Parallel by default

Work that splits, splits on its own.

When a job breaks into independent parts, such as searches across several areas of a codebase, reviews of separate packages, independent checks or several research questions, the model hands them to parallel subagents without being asked. It writes each task with the context it needs, because a subagent does not see the conversation.

  • Every child starts at once, up to your CPU count and at most 8, each in its own process group.
  • One line per child stays in the transcript: status, tokens in and out, and its latest tool call. Esc stops them all.
  • Results come back in task order, whatever order the children finish in.
  • A subagent never fans out again. Trivial requests, dependent steps and edits to the same files stay in one session.
  • scout, planner, worker and reviewer take the parts. Harness agents hand a lane to Claude Code, Codex or pi.
dexterYour sessionsubagent · parallel
  1. Done: scoutMap the auth flow
  2. Running: scoutMap the billing flow
  3. Running: reviewerReview src/db for unsafe queries
  4. Up to 8 children start in the same tick
Each child is a full dexter process with DEXTER_SUBAGENT=1 set, so it does its one task and never fans out again.

02Live panes

Watch every subagent work, in tmux or out of it.

Each child streams into its own live pane: its text as it is written, tool calls with short arguments, failed tools and retries, then a summary line. Panes only display, so closing one never stops its subagent.

  • Inside tmux, panes open in a background dexter-agents window, so focus stays on your session.
  • From a plain terminal tab, they open in a detached dexter-agents session. Watch with tmux attach -t dexter-agents.
  • Panes are tiled and titled with their task, and close 15 seconds after it ends. /tmux checks your setup and gives a one-line fix for anything that is off.
  • Built for remote machines over SSH: sessions resume with full context, and clipboard, links and scrollback work through tmux.
The detached dexter-agents session: one tiled, titled pane per subagent.

03Fan out from anywhere

The same swarm, from scripts, CI and other agents.

dexter fanout runs a JSON list of tasks through the same subagents, limits and live panes, with no model making the call. stdout holds only the report: Markdown by default, or one JSON document with --json, with each task's full answer, tokens and cost, in input order.

  • Exit code 0 when every task succeeds, 1 when any fails, 2 for invalid input. SIGINT or SIGTERM stops every child.
  • The dexter-fanout skill gives Claude Code the same power: it hands 2 to 8 independent tasks to dexter's subagents on the model you choose, then reads back each answer with its cost.
zsh · ~/src/dexter
Three scout tasks from a JSON file, answered in parallel, with each answer's model, time, tokens and cost.

04Any model

Bring any model, cloud or local.

Models change every month. The harness is what lasts: the same tools, context management and subagents run over any provider. dexter/auto pairs a frontier supervisor model for planning with a fast executer model for edits.

  • Keys live in the OS keychain, macOS Keychain or libsecret, never in plaintext dotfiles.
  • Sign in with Meta to use Muse Wonder Full on a Muse Code subscription.
  • Routes resolve per request, so a settings change applies to the next request with no restart.

Frontier

  • GLM-5.3Z.ai
  • Muse Wonder FullMeta
  • Gemini ArgonGoogle

Providers

  • Anthropic
  • OpenAI
  • Google Gemini
  • DeepSeek
  • Kimi
  • Qwen
  • OpenRouter
  • Groq
  • Mistral
  • xAI

Local, no key

  • Ollama
  • llama.cpp
supervisorplans, orchestrates tools, reviews diffs, gates commits
executersubagent workers, skills, focused mechanical work

05Learns and heals

It remembers what worked.

Fixes that turned a failing run into a passing test become a playbook, and long debugging sessions become reusable skills.

  1. 1Tool failure
  2. 2Code edit
  3. 3Passing test
  4. 4Verified fix, saved

MEMORY.md · USER.md

A frozen snapshot

Memory is injected as a frozen snapshot at session start, so writes mid-session never invalidate the model's prompt prefix cache. Every entry carries SHA‑256 provenance, and symlinks are rejected.

/learn · skill_manage

Skills from sessions

Complex sessions become reusable SKILL.md procedures, scanned for prompt injection and secret exfiltration and linked to each other through related_skills.

learning_graph · /journey

The self-healing playbook

Cycles of tool failure, code edit and passing test are recorded automatically, and verified fixes surface in <self_healing_playbook>. /journey draws the graph.

06Supervised autonomy

Keeps working when you stop. Stops when you say so.

dexter keepalive walks the ROADMAP.md you wrote. It takes the first unchecked item, gives it to a headless worker, requires the build and tests to pass, then makes one small commit and ticks the box. It commits locally and never pushes: you review, you push.

Kill switch
touch ~/.dexter/PAUSE and no new session starts. Remove the file to resume.
Spend cap
A rolling window, 6 sessions per hour by default, bounds model spend even if items keep failing.
One loop
A lock stops two loops from ever working the same repository.
Recovery
--heal-retries sets a self-healing retry budget for a worker session that fails or stalls.
ROADMAP.mdkeepalive · every 30 min
One item per run: a failure costs one item, not the roadmap.

skill

vortex

Turns a goal into a measurable target, then loops: evaluate, analyze failures, fix, re-evaluate, until the goal is met or the budget runs out (10 iterations by default). Every iteration is logged and committed.

skill · /goal · /cron

goal

One goal in GOAL.md, with done-when criteria a machine or a reviewer can check. /goal pins it across sessions, and /cron schedules recurring goal checks.

07The built-in kit

Research, retrieval and a real browser, built in.

/kit shows the status of each engine. Over 200 bundled skills cover native iOS and macOS, Android, GitHub, design, testing and debugging; enable only what you need.

trove_query

trove

Repository memory search.

parse_document

terbium

Document to Markdown parsing.

web_fetch · web_crawl

curl_reap

Browser-grade Transport Layer Security (TLS) fetching that gets past bot walls.

browser_navigate · browser_click · …

Browser control

Fast control over the Chrome DevTools Protocol (CDP): navigate, snapshot, click, fill, select, press, screenshot and evaluate.

troy

Troy bridge

Your own signed-in browser, through the Troy agent bridge.

inspect_artifact

Binary introspection

Zero dependencies: format, architecture, sections with entropy, framework fingerprints and strings.

  • Shell hooks before and after tool use
  • Bash confined with seatbelt or bubblewrap
  • Model Context Protocol (MCP) tools that require approval
  • Long commands in the background

08Fast where you feel it

Measured, then shipped.

Figures from Dexter's benchmarks and its 3.0 changelog.

60ms

Launch

dexter --version answers in about 60 ms and 46 MB. Launches are sub-second.

1,652

Files at startup

Instead of 2,853. Extensions reuse the running dexter instead of loading a second copy: one copy of dexter per process.

30×

Streaming render

Streaming markdown updates measure about 30 times faster than the naive path, because unchanged rows are reused.

8at once

Parallel start

All eight children start together instead of four and then four more. With a model that answers after 1 s, the call took 1,567 ms instead of 2,793 ms.

3to5

Progress updates

For an eight-task call, instead of 32. Updates coalesce to at most one every 100 ms, so the terminal's time goes to work.

1.0s

Subagent ready

A scout child with a real configuration (three packages, about 400 skills and an MCP server) was done after 1.0 s instead of 1.45 s.

09Research paper

October 2026

Dexter: a multi-agent harness that keeps working when you stop

How a terminal coding harness lets the model fan out independent work to parallel subagents on its own, turns verified fixes into a playbook, and walks a written roadmap under spend caps and a kill switch.

Read the paper

Dexter is available by invitation.

Dexter is proprietary to Velofy. Write to us and tell us what you would point it at.