Skip to content

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 → CLI Agents.

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- or OpenAI-compatible API; tools write to the session folder; accept / reject the diff
  • CLI in the same thread — Claude Code, Codex, Cursor, Grok, and others 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
  • Swarm (optional) — multi-split raw CLI TUIs; off by default in Settings → CLI Agents

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.

  • 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 the vav CLI (defaults to ~/.local/bin). Run vav -h for usage; vav . opens a new session in the current directory.

Develop

Requires Node 20+, 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 contracts, i18n
  main/
    store/     settings, secrets, conversation persistence
    agent/     LLM client, tool defs, turn loop
    terminal/  sticky shell, PTY management
    fs/        file listing and watchers
    cli.ts     `vav` command install and open-path parsing
  preload/     contextBridge `window.vav`
  renderer/    React UI, zustand stores, stream projection

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

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages