Open source · v0.11.0

The workspace for parallel coding agents.

Spin up multiple AI agents in isolated git worktrees and manage them from one native app. No account, no subscription, no data leaving your machine.

macOS · Windows · Linux

VVERUN
DDASHBOARD
AAPI-SERVER
Fix markdown rendering
I'll track down the markdown rendering issue. Let me check the current ChatView implementation first.
Found it — marked is set up but no highlighter is configured. Let me check package.json to see if highlight.js is already installed.
1import { marked } from "marked";
2import { markedHighlight } from "marked-highlight";
3import hljs from "highlight.js";
4
5marked.use(markedHighlight({
6 langPrefix: "hljs language-",
7 highlight(code, lang) {
8 const language = hljs.getLanguage(lang) ? lang : "plaintext";
9 return hljs.highlight(code, { language }).value;
10 }
11}));
Code blocks now render with proper syntax highlighting for TypeScript, Rust, Python, Bash, and all other languages highlight.js supports.
Looks great! Can you also add line numbers to the code blocks?
Line numbers added. Each <pre> block now wraps in a <div class="code-block"> container that uses counter-reset and counter-increment on <code>spans — one per line. They render in a muted color with a right-border separator so they're distinct from the code itself.
$0.045
Changes3 files+135-12
Branch Commits
Uncommitted changes3 files
a16f3536fix: configure marked-highlight for syntax hi…22h ago
9ce6cb13chore: add highlight.js and marked-highlight…28h ago
Problems4
TSChatView.tsx11
Type 'string | Promise<string>' is not assignable to type 'string'.
Parameter 'lang' is declared but its value is never read.
TSmarkdown.ts2
Property 'highlight' does not exist on type 'MarkedOptions'.
Object is possibly 'undefined'.

Bring your own agent · Verun runs whichever harness or CLI you give it an API key for

Claude Code
OpenAI Codex
Google Gemini
Cursor
Local modelsSoon
PARALLEL AGENTS

Run agents in parallel worktrees

Every task runs in its own git worktree, branch, and port allocation. Spin up as many agents as you want — they can't step on each other's changes or dev servers.

verun · parallel worktrees
VVERUN
DDASHBOARD
Claude Codev1.0.42fix/markdown-syntax-highlighting
>Fix markdown rendering in ChatView
I'll track down the markdown rendering issue. Checking ChatView first.
Readsrc/components/ChatView.tsx
Editsrc/lib/markdown.ts
Wired up marked-highlight with highlight.js so code blocks render with proper syntax colors.
TypeScript, Rust, Python, and Bash blocks now highlight correctly.
STEPS & FORK

Queue follow-ups. Fork from any turn.

Stack Steps while an agent works — auto-send them or run manually. Hover any past reply to rewind in place, or fork into a new task with the worktree restored to that exact moment.

Fix sidebar task state7h 18m$0.751
Bash$ git status
Thinking — All changes look good. Update CHANGELOG.md
Zero errors, zero warnings. Now updating the CHANGELOG.
4m 21s
ReadCHANGELOG.md
EditCHANGELOG.md
Done. PR #88.
6m 02s
The bug was in src/store/tasks.ts setActiveTask(id) was reading from selectedTaskId, not the task that owned the hook.
7h 14m
Next Steps
1.Make the button outlined instead of primary
2.Remove the unnecessary eyebrow
Cmd+Enter to send next step
TRUST & ALERTS

Desktop notifications plus tool approval.

Set trust per task — supervised, normal, or full auto. Desktop alerts tell you when agents finish, need approval, or hit a failure, even while the window is hidden.

V
Verun
now
Approval needed
Refactor auth · pnpm add jose
Verun
Add JWT token verification to the auth rotation flow
I'll need to install the new jose dependency so I can verify the rotated JWTs. Running pnpm add jose now.
Bash$ pnpm add jose
Approval required
This task is set to Normal. Installing a new dependency needs your approval before the agent can continue.
$ pnpm add jose
EDITOR & IDE

A full editor with intellisense & quick open

CodeMirror 6 with TypeScript intellisense, a project-wide Problems panel, file tree, and ⌘P quick open — jump in and fix anything an agent missed without ever leaving Verun.

TSauth.ts
TSsession.ts
1import { User } from './types';
2 
3export function rotateToken(user: User) {
4 const next = sign(user, Date.now());
5 return { token: next, exp: user.exp };
6}
IntelliSense · suggestions
ƒsignToken(u: User, t: number) => string
vsignaturestring
ƒsignJwt(p: object) => string
TSignedPayloadtype
(u: User, t: number) => string
Sign a JWT payload for user.
Files
Problems2
REVIEW & GIT

Side-by-side diffs, commit, push, open PR

Review every change side-by-side with syntax highlighting, stage files, write a commit, and open a pull request — all without switching context or tools.

review & commit
TSsrc/auth.tsline 42 · 6 changes
Before
37·export function rotateToken(
38· user: User,
39·) {
40· const t = signToken(user);
41-return t;
42-}
43· 
44·export function refresh(
45· u: User
After
37·export function rotateToken(
38· user: User,
39·) {
40· const exp = Date.now();
41+return signToken(user, exp);
42+}
43· 
44·export function refresh(
45· u: User
Changes+25-8
auth.ts+14-6
session.ts+8-2
types.ts+3
2 staged · 1 unstaged
TERMINAL & WINDOWS

Multi-window workflows. Integrated terminal.

Drop into any task's worktree with the built-in terminal, then pop the whole task into its own window for side-by-side review across monitors.

Fix pagination
Editsrc/hooks/useCursor.ts
Cursor now carries forward on page reloads. Running vitest run pagination to confirm.
Thinking — all 14 specs passing
running·:5174
Refactor auth
Refactor auth2h 14m$0.184
Readsrc/auth/rotate.ts
I've refactored the token rotation logic. The new rotateToken() function now validates the expiry before issuing a refresh.
Editsrc/auth/rotate.ts
All 14 auth tests passing. Running the full suite to check for regressions.
Terminalzsh · ~/verun
verun · ~/verun $ pnpm test auth
✓ 14 passed · 1.2s
verun · ~/verun $ git status
On branch auth/rotation · nothing to commit
verun · ~/verun$

Start building with Verun today

Free, open source, runs entirely on your machine. Download and start running parallel agents in minutes.

macOS · Windows · Linux