VibeForge
Saturday 09:00
Install

Your coding agents, forged into one desk.

Run several coding CLIs at once (Claude Code, Codex, Grok, or anything else on your PATH), each on its own branch in a git worktree. Save reusable agents, put recurring jobs on a schedule, and review every git diff in one place.

$ curl -fsSL https://vibe-forge.net/install | bash
  • No accounts
  • No API keys
  • No telemetry
  • Plain files on disk

Works with the CLIs already on your PATH

Claude CodeCodexGrok BuildCursor AgentAntigravity CLIOpenCodeCopilotCrushKimiMusePiHermes+ anything with a command line

VibeForge never calls a model API or stores an API key. Every engine is a CLI you're already signed in to, found through your login shell (including mise and ~/.local/bin).

02 Features

Run several agents at once.

Give each coding CLI its own branch in a git worktree so parallel runs never step on your files. Save agents with persistent instructions, schedule recurring jobs, and inspect every diff in one inbox.

Tell VibeForge what to start

Press Ctrl+Shift+O anywhere to open Maestro, VibeForge's orchestrator, and type or dictate what you want running: “In web-app, have Claude Code fix the mobile nav menu, and start Codex to write tests for checkout.” One of your signed-in CLIs (Grok Build, Claude Code, Codex, or Antigravity) turns that into a plan without touching any files. Press Go and each CLI opens on its own git branch in a separate worktree, leaving your main checkout untouched.

No API key and nothing extra to download: planning uses the CLI subscription you're already signed in to. Edit any step or branch name before pressing Go, or switch to Just go to launch right away. It only starts CLIs you ask for.

Your agents talk to each other

Every terminal has vibeforge on its PATH. Claude Code can ask Grok for a second opinion with vibeforge tell grok --wait, or delegate a subtask to another agent with vibeforge task. Delegated tasks run on their own branch in a git worktree and report back with a patch when they finish. You can also make one CLI the lead so it hands subtasks to faster or cheaper agents, pausing for your approval unless you let it start automatically.

Every message is labelled with who sent it, back-and-forth turns are capped so agents can't loop forever, and one click stops them. Send to… and Ask … to review on each pane's title bar do the same manually.

Your desk, on your phone

Turn on Settings → Phone and open it through Tailscale Serve. See who is working and who is waiting for you, read a CLI's screen, and send the next step or stop it. Start an agent, or any CLI on its own, from the couch.

It listens on this computer only, asks for a pairing code once, and stays off until you turn it on.

Agents that aren't tied to one CLI

Each agent keeps its own instructions, a persistent memory file, installed skills, and the folders it's allowed to use. Switch it from Claude Code to Codex to Grok without rewriting your setup.

Tiled like your desktop

Split terminals side by side, click files in the tree to insert their paths, and open dev-server links in a built-in browser pane beside your code.

Talk to your agents

Hold Ctrl Shift Space to dictate into the active chat or terminal. Press Super Alt V from anywhere on your desktop to dictate to a chosen agent, and your words wait in its chat until you hit Enter. Transcribed locally with whisper.cpp.

And they answer out loud

When you dictate a prompt, Piper reads the first paragraph of the reply aloud in that agent's voice, right on your machine. Hold the dictate key again to interrupt.

Agents on a schedule

Run agents on a cron schedule or a fixed interval for weekday changelogs, nightly audits, or recurring checks. Routines keep running in the system tray, and missed runs are logged instead of piling up after sleep.

Review everything they touched

Every run saves its final terminal screen, full transcript, prompt, and the git diff from start to finish, captured the moment it ends so later edits stay out of it. Click Continue to reopen the exact CLI session (claude --resume, grok --resume, and others).

A task board you trigger

Queue up tasks and assign an agent without starting anything yet. Hit Execute when you're ready: the agent runs on its own branch in a git worktree, and the finished diff lands in Review to apply or discard.

Full terminals, not a chat wrapper

WebGL xterm panes you can split and drag into place. Ctrl V pastes text, and clipboard screenshots go straight to CLIs like Claude Code, just like in Ghostty.

Local and private

No accounts, no API keys, no telemetry. VibeForge only checks GitHub for new releases (which you can turn off); optional features like plan usage limits and your GitHub commit graph stay off until you turn them on. Agents, skills, routines, and tasks are plain YAML and Markdown files you can edit in Neovim.

Updates in plain sight

When a new release is out, Help shows a badge. Click Update to read the release notes, watch the installer run in a real terminal, and restart.

It glows when it's your turn

When a background CLI finishes or stops to ask a question, its workspace, chat, and sidebar icon glow like an ember until you check it. When VibeForge is unfocused, a soft sound and desktop notification take you straight there.

Instant delete with Undo

Deleting a chat, task, skill, or routine happens right away. Click Undo on the toast or press Ctrl Z to put it back.

Seven languages

English, German, Spanish, French, Brazilian Portuguese, Japanese and Simplified Chinese. VibeForge follows your system language, or you pick one in Settings.

03 Tour

Inside the real app.

Screenshots of VibeForge 2.12.1 and 2.14.1 at work, in the Apex Forge theme.

VibeForge's Home: the pixel wordmark beside a year of commits, nine terminals running, three runs to review, Claude Code and Codex waiting for you by name, the terminals live now, and the six workspaces with two glowing because their CLIs are waiting.
Code mode on the VibeForge repository: git log with the 2.12 release tags, a diffstat of Maestro's code from 2.11.0 to 2.12.1 in the focused pane, a TypeScript watch its title bar names, two workspaces glowing in the list, and the file tree on the right.
The task board with cards in To do, Running, Review and Done, each assigned to an agent and a workspace, the finished ones with their diff.
Maestro: asked what's running, it answers in a sentence; asked to start Claude Code in landing-page on hero-copy and Codex in weather-api on rate-limit, it carries out the plan, each step with Open in Code, Review changes, Apply and Discard for its own copy, and beside it the two copies wait under To review above the CLIs running.

Home Running terminals, CLIs waiting on your input, diffs to review, and upcoming scheduled runs.

— Under the hood

What happens when you hit Send.

No wrapper APIs and no scraping terminal output into fake chat bubbles. Just real CLI processes, git worktrees, and saved diffs.

  1. 01

    Context passed directly

    VibeForge combines the agent's brief, memory, skills, and your prompt and passes them straight to the CLI via its prompt flag (or a single paste if it doesn't have one).

  2. 02

    Runs in a real terminal

    The process runs inside its workspace or git worktree. A headless terminal mirror keeps every screen intact when you switch views or close the window to the tray.

  3. 03

    Saved when it finishes

    As soon as a run exits, its final screen, transcript, and full git diff are saved to disk. Stopping sends a clean hangup to the whole process group.

  4. 04

    Resume the same session

    Continue reopens the CLI's exact saved session where it left off, and follow-up messages are pasted straight into the live terminal.

04 Themes

It wears your theme.

You change your Omarchy theme every other week. VibeForge follows: chrome from colors.toml, terminals from your ghostty palette, restyled the moment you switch. Or pin one in Settings and keep it. Try them here, or press T anywhere on this page.

— Keyboard

Keys, like the rest of your desktop.

CtrlK
Jump to any agent, chat, workspace, task, routine, or skill, or search past runs by transcript
Ctrl1…9
Home, Agents, Code, Chat, Tasks, Routines, Skills, Runs, Maestro
CtrlShiftO
Open Maestro from any view to start CLIs on new branches
CtrlShiftD/E
Split a new terminal to the right or below
CtrlShiftM
Maximize the focused pane
CtrlZ
Undo a delete while its toast is up
CtrlShift/
Show every keyboard shortcut
— Files

Plain files. Yours.

~/.config/vibeforge/agents/release-notes/agent.yaml
name: Release notes
engine: claude
brief: |
  Draft release notes from commits since the last tag.
  Group new endpoints, fixes, and breaking changes.
  Check every entry against the git diff.
  Do not push, tag, or publish.
places:
  - ~/projects/weather-api
skills:
  - release-notes
allowRoutines: true
05 Install

One line. Then Super + Space.

Made for Omarchy, and fine on any Arch + Hyprland setup. Linux only, on purpose — there are no Windows or macOS builds to maintain.

ghostty — ~
$ curl -fsSL https://vibe-forge.net/install | bash
 
  VibeForge — your coding agents, forged into one desk
 
▸ Installing into ~/.local/share/vibeforge-app
▸ Downloading VibeForge 2.14.1, ready-made for linux-x64
  It matches the release's SHA256SUMS.
▸ Adding the vibeforge command and the launcher entry
 
✓ VibeForge 2.15.0 is installed.
  Open it from the app launcher (Super + Space), or run: vibeforge
  CLIs found on PATH: claude codex grok agy opencode
curl, tar, zstdon every Arch install; nothing is compiled
Node 20 or newerfor the terminals; mise use -g node@lts on Omarchy
Updatefrom Help in the app, or run the line again
Uninstalladd --uninstall; your data stays
Build it yourselfMIT licensed, and hacking on it is the point
git clone https://github.com/L0nE-F0x/VibeForge.git
cd VibeForge
npm install
npm start            # Vite + Electron, hot reload
npm run build && ./scripts/vibeforge

Light the forge.

Free and open source under the MIT license. Built on Omarchy, for Omarchy.