Skip to content

Latest commit

 

History

140 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vav

OriginAI

Your agents' workbench. Open a folder or a document, see it, pick a block, and ask — with the built-in VAV agent or Claude Code / Codex in the same thread. Writes land on disk and you accept or reject them. A real terminal sits beside the chat. Everything stays on your machine; each CLI agent manages its own auth.

New session: pick a workspace, pick an agent, ask one thing. Multi-split CLI TUIs (Swarm) are an optional advanced mode under Settings → Providers.

vav

Features

  • File workbench — tree / columns, format-aware preview (Office, PDF, Markdown, CSV, code, …), pick a block and ask beside the file
  • Built-in VAV chat — Anthropic-, OpenAI-, or Google-native API (model metadata and live model lists come from the provider); image attachments reach vision models inline; tools write to the session folder; accept / reject the diff
  • CLI in the same thread — Claude Code, Pi, Cursor, Devin, Antigravity, Codex, Grok, Kiro, OpenCode, and Cline over their structured protocol (install from Settings if the binary is missing)
  • User PTY (⌘T) — real bash / zsh / PowerShell; top and vim work
  • Per-session working directory, defaulting to a temporary workspace you can point at a real project; vav . / vav /path CLI open
  • Git change inspector — status + diff in the Files tray; commit stays in the terminal or the agent
  • English / Chinese UI, following the OS or a setting
  • API keys stored encrypted via safeStorage (Keychain) — never as plaintext
  • Spending — Settings panel for local usage plus provider subscriptions, and DeepSeek API balance when VAV talks to official DeepSeek
  • Swarm (optional) — multi-split raw CLI TUIs; off by default in Settings → Providers
  • Remote — Settings → Allow other devices; pair VAV Remote (iOS) or another computer. Conversations and keys stay on this machine
  • Headless VAVnpx @21stware/vav-server hosts sessions, keys, files, PTY, and agent turns. vav-board is the herdr-style control client; vav-tui / vav-tui is the Claude Code-style agent CLI. Seven products live under packages/* (npm workspaces): vav-desktop, vav-server, vav-tui, vav-board, vav-iOS, vav-android, vav-chrome-extension. Shared kernel stays in src/main + src/shared. See docs/PRODUCT_MATRIX.md.

Website

The static site lives in site/ and is published to GitHub Pages by Actions:

https://vavapp.com
(also https://21stware.github.io/vav/)

Bilingual (toggle in the top-right; default follows the browser language, and ?lang=zh pins it). Marketing screenshots are captured in English, light and dark:

node scripts/capture-marketing-screenshot.mjs

Writes docs/screenshot.png (README hero) and site/assets/screenshot-*.png (site gallery), then derives the AVIF/WebP variants the site actually serves. The PNGs stay as the <picture> fallback. If you edit site/assets/*.png by hand, regenerate the variants or visitors keep the old ones:

npm run site:images        # add -- --force to rebuild everything
npm run brand:icons        # rebuild Windows .ico + site favicon from build/icon.png

Custom domain: vavapp.com (see site/CNAME). Apex uses GitHub Pages A/AAAA records; www is a CNAME to 21stware.github.io. Keep Cloudflare proxy DNS only (grey cloud) so GitHub can issue HTTPS.

Install

Grab a build from Releases. Each v* release includes the macOS DMG/ZIP, Windows installer, @21stware/vav-server tarball, and the Chrome extension zip.

  • macOS — Developer ID signed and notarized (app + DMG, ticket stapled); open the DMG and drag to Applications. Later versions update in-app (About → Check for Updates).
  • Windows — not code-signed; SmartScreen may warn on first open (More info → Run anyway). In-app updates use the NSIS installer feed.

Then in Settings → “VAV command”, install vav, vav-server, vav-board, and vav-tui (defaults to ~/.local/bin). vav . opens a new desktop session in the current directory. vav-server is the daemon; vav-board controls sessions; vav-tui runs a turn in the terminal. All three talk to the same vav-server the app can spawn.

On a machine that should host VAV without opening the desktop app:

npx @21stware/vav-server
# or: npm i -g @21stware/vav-server && vav-server
vav-board session create --cwd .
vav-tui -p "hello"

Listens on all interfaces by default (--listen 127.0.0.1 for local-only). Opens a web UI on http://127.0.0.1:4752. Paste the pairing line into VAV → Connect or VAV Remote. The local web UI and Chrome extension discover a loopback daemon and pair automatically — or launch the desktop app with VAV_SERVER_URI / --vav-server-uri so it opens as a vav-server UI without the Connect paste. VAV_SERVER_SPAWN=1 / --with-vav-server starts vav-server as a child of the app and pairs automatically. Packaged builds do that by default (VAV_SERVER_SPAWN=0 / --no-vav-server keeps the in-process host). The pairing secret is equivalent to local access on that machine. Set VAV_API_KEY (and optional VAV_API_ENDPOINT) so the daemon can call your model.

From this repo, npm run vav-board -- session list / npm run vav-tui -- -p "hello" talks to that daemon over the same phone protocol. npm run vav -- send "hello" remains as a compatibility alias.

Develop

Requires Node 22+, macOS or Windows.

npm install
npm run dev         # auto-fetches bundled officecli into resources/bin/ if missing

officecli (Office OOXML CLI) is vendored at build time (~32 MB) via npm run fetch:officecli and shipped in the app Resources/bin so the agent can create/edit .docx/.xlsx/.pptx without a system install.

Package (native modules mean you only build for the platform you’re on):

npm run dist        # macOS → release/vav-*-macos-arm64.dmg (signed + notarized when credentials are set)
npm run dist:win    # Windows → release/vav-*-windows-x64-setup.exe

First launch unlocks the Keychain store. File tree and terminal work immediately. The built-in VAV agent needs an API key (⌘, / Ctrl+,); Claude / Codex use their own login.

Shortcuts

⌘ on macOS, Ctrl on Windows; in-app hints switch automatically.

Action Key
New session ⌘N
Send ⌘↩
Cancel current turn Esc
Search in session ⌘F
New terminal tab ⌘T
Toggle sidebar / tools panel ⌘⇧H / ⌘⇧E
Settings ⌘,

A global hotkey can be recorded under Appearance; off by default.

Platform differences

Most things match; these are OS differences, not missing features:

macOS Windows
Agent & terminal shell zsh / bash / fish PowerShell
Closing the main window Hides; turns and PTYs keep running; Dock restores Quits for real (no Dock to restore from)
Space in the file tree Quick Look Opens with the system default app
Default global hotkey ⌃⌘Space Ctrl+Alt+Space

Layout

src/
  shared/      domain types, IPC + phone/daemon contracts, i18n
  main/        shared kernel (stores, agent, daemon server, host, ipc)
packages/
  vav-server/        daemon entry (`src/vav-server.ts`)
  vav-desktop/ Electron main + preload + renderer
  vav-tui/     Claude Code-style agent CLI
  vav-board/        herdr-style control client
  vav-ios/     native Remote
  vav-android/ native Remote (same protocol as iOS)
  vav-chrome-extension/  MV3 side panel + phone-ui

Implementation notes: docs/TECH_DESIGN.md. Product behavior is specified in RPML via Origin and pulled by .agents/skills/origin-product-spec-management into .agents/specs/ (not checked in).

License

Dual-licensed — see NOTICE and LICENSE.

  • Noncommercial (free): PolyForm Noncommercial 1.0.0. Download, study, personal customization, and noncommercial redistribution are allowed; keep the Required Notice and upstream repo https://github.com/21stware/vav.
  • Commercial (paid): Selling, white-labeling, embedding in a paid product/service, or any commercial customization / commercial use requires a commercial license from the copyright holder. Contact: licensing@21stware.com.

About

Local AI coding agent workstation — chat, file tree, and a real terminal in one window. Watch the agent work in your project.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages