Skip to main content

Anvil — a local TUI for any coding agent (Claude Code, Codex, …) with projects, conversations, and cross-conversation memory.

Reason this release was yanked:

n

Project description

Anvil

A local TUI for any coding agent — Claude Code, OpenAI Codex, and whatever comes next. Anvil gives you projects, persistent conversations, file editing, and cross-conversation memory in one keyboard-driven terminal app.

┌──────────────────────┬──────────────────────────────────┐
│ PROJECTS             │  [chat 1][chat 2][+]  (tabs)     │
│  • dental-nation     ├──────────────────────────────────┤
│  • personal-branding │  user: ...                       │
│                      │  assistant: ...                  │
│ FILES                │  🔧 Read foo.py                  │
│  └ src/              │                                  │
│                      │                                  │
│ CONVERSATIONS        │                                  │
│  ● first pass        ├──────────────────────────────────┤
│    bug fix           │  > type message…  📎 Paste       │
└──────────────────────┴──────────────────────────────────┘

Why Anvil?

If you use Claude Code or Codex from the CLI, you already know the pain: each conversation lives in its own terminal window, scrollback is fragile, attaching images is awkward, and switching between projects means a tangle of tabs. Anvil keeps the same agents — same auth, same models — but adds the things a full app gives you:

  • Multiple projects with their own conversation history and memory.
  • Tabs for parallel conversations in the same project.
  • A file tree + in-app editor for small reads/edits without leaving the app.
  • Mac-native shortcuts (Cmd+C, Cmd+W, Cmd+,) via a custom Terminal profile.
  • Agent-agnostic engine layer — point a project at Claude Code today, Codex tomorrow, or both side-by-side.

Anvil is a wrapper, not a replacement. It uses your existing Claude Code OAuth or Codex API key — Anvil never sees your tokens.

Install

Homebrew (recommended for Mac):

brew tap your-org/anvil
brew install --cask anvil

This installs the anvil CLI and copies Anvil.app to /Applications. Launch from Spotlight or the Applications folder.

Pipx (Mac + Linux):

pipx install anvil-harness
anvil

You'll also need at least one agent CLI installed (see below).

Agent setup

Anvil shows a one-time setup wizard on first launch that walks you through this, but for reference:

Agent Install Auth
Claude Code npm install -g @anthropic-ai/claude-code claude (OAuth flow)
Codex CLI npm install -g @openai/codex codex login or set OPENAI_API_KEY
Mock (built in) none — offline echo

Anvil never sends your credentials anywhere. It calls your local agent CLI directly; auth lives wherever those CLIs put it (~/.claude/, ~/.codex/).

Configuration

Two layers, both edited from the in-app Settings screen (Ctrl+, or Cmd+,):

  • ~/.anvil/config.toml — global defaults (agent, model, telemetry opt-in).
  • <project>/.harness/config.toml — per-project overrides (only fields that differ from global).

You should never need to hand-edit these. The Settings screen is the canonical UI; the files exist so power users can sync them via dotfiles.

Keyboard

Shortcut Action
Ctrl+N New chat
Ctrl+O Open project
Ctrl+, Settings
Ctrl+Shift+M Switch agent for current chat
Ctrl+Shift+I Attach image
Ctrl+Shift+V Smart paste (text or image)
Ctrl+Shift+W Close tab
Ctrl+S Save file (in editor tab)

Mac users with the bundled Terminal profile installed get the Cmd+ versions of these as well (Cmd+W, Cmd+C, Cmd+,).

Contributing

Want to add support for a new agent (Gemini, Cursor Agent, aider, …)? See CONTRIBUTING.md. The agent interface is three methods and one registration line.

Development

git clone https://github.com/your-org/anvil-harness
cd anvil-harness
uv sync
uv run anvil

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anvil_harness-0.1.0.tar.gz (37.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anvil_harness-0.1.0-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file anvil_harness-0.1.0.tar.gz.

File metadata

  • Download URL: anvil_harness-0.1.0.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for anvil_harness-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c34c10b468542b978e01b93275faf0a9e8be2e5e0e704a5652eac7299f2f0e22
MD5 5ae11bbd8842b08c5c7f12345118175d
BLAKE2b-256 66b7601a07bd9b0e920fe84ecb0c8be7f735e57a43440122804580f01a80f476

See more details on using hashes here.

File details

Details for the file anvil_harness-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anvil_harness-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for anvil_harness-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5f716709eabd592b2d04f70b3167556f216e18d2a08987b8b194fcc818a31e3
MD5 48ac8f0cac6fb81b7c35aa7473ec16f8
BLAKE2b-256 7bb3c1a72f5a3584dc7682f0df33df763bf2990cf163d10d44dbfc4fd46cccf5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page