This repository is primarily set up for local development, building, and testing.
Requirements:
- Bun
1.3+ - Node.js
18+ - macOS for GUI automation work and
bun run smoke:gui
Install dependencies:
bun install
Run from source:
bun run dev
Useful variants:
bun run dev -- --help bun run dev -- --version
bun run dev executes src/entrypoints/cli.tsx with scripts/dev-preload.mjs, so local workspace packages are used directly during development.
Build the CLI:
bun run build
Build output is written to dist:
Clean generated output:
bun run clean
Standard smoke test:
bun run smoke
GUI smoke test:
bun run smoke:gui
Recommended validation sequence:
bun install bun run build bun run smoke bun run smoke:gui
The standard smoke test currently verifies:
- build success
./dist/claude --versionnode bin/claude.js --version./dist/claude --help./dist/claude auth status --text./dist/claude plugin list./dist/claude mcp list./dist/claude agents- workspace package loading
computer-useMCP server initialization
The GUI smoke test currently verifies:
- build
- GUI permission preflight
- frontmost app and mouse position checks
- package-backed screenshot capture
- executor screenshot
- mouse move and restore
- key press and release
- opening
TextEdit, creating a document, inserting a fixed test string, and verifying the document content
Permissions involved:
AccessibilityScreen Recording
If Screen Recording is granted during the run, macOS may still require restarting the terminal before the GUI smoke test can fully pass.
The main local workspace packages involved in development and smoke coverage are:
audio-capture-napiclaude-for-chrome-mcpcomputer-usecomputer-use-inputcomputer-use-mcpimage-processor-napimodifiers-napiurl-handler-napi
src: main CLI sourcepackages: local workspace packagesscripts: build, development, and smoke-test scriptsbin: launcher entrypointvendor: vendored helper binaries such as fallbackripgrep
- The repository is documented as
VideCoding CLI, but the current runtime identifiers and binary paths still useclaudenaming internally. - Actual model use still requires a valid login state.
- GUI validation depends on a real macOS desktop session with the required permissions.