@advaitlakhera/jarvis
v0.2.0
Published
A polished terminal coding agent with memory, safe workspace tools, and a jcode-compatible provider catalog.
Readme
Jarvis
A polished terminal coding cockpit for @advaitlakhera/jarvis.
Jarvis is a workspace-safe coding agent with a fast TypeScript/Node.js CLI, a panel-style Ink TUI, durable local memory, explicit shell approvals, unified diff output, and a broad provider catalog inspired by jcode.
Install
npm install -g @advaitlakhera/jarvis
jarvisOr run without installing:
npx @advaitlakhera/jarvisThe package requires Node.js 20 or newer. This repository can also be developed locally with:
npm install
npm run build
npm testStart coding
jarvis # interactive TUI
jarvis -p "fix the failing tests" # one-shot mode
jarvis -p "run the test suite" -y # auto-approve shell commands
jarvis --workspace ~/src/my-app
jarvis --provider ollama --model qwen3-coderThe TUI has a compact status header, readable transcript panels, a live thinking state, inline shell approvals, bounded tool output, and keyboard shortcuts:
| Shortcut / command | Action |
| --- | --- |
| /help | Show all commands |
| /providers | List every provider profile |
| /models | List models for the active provider |
| /provider openrouter | Switch provider and persist the choice |
| /model openrouter/openai/gpt-4.1 | Switch model, including qualified ids |
| /level lite\|full\|ultra\|off | Change the ponytail guidance level |
| /remember name \| fact | Save a durable local project fact |
| /memory | Inspect saved memory |
| ctrl+l | Clear the transcript |
| ctrl+c | Exit |
Providers and models
Jarvis includes profiles for:
OpenCode Zen, OpenCode Go, OpenRouter, OrcaRouter, DeepSeek, Z.ai, Kimi, Moonshot AI, 302.AI, Fireworks, MiniMax, Meta Muse, Alibaba Coding Plan, Google Gemini, Azure OpenAI, GitHub Copilot, LM Studio, Ollama, Nebius, Scaleway, STACKIT, Baseten, Cortecs, Hugging Face, Firmware, OpenAI/Codex, Claude, and custom OpenAI-compatible endpoints.
See the live catalog with:
jarvis providers
jarvis models openrouterProfiles use the standard endpoint protocol and read API keys from environment variables or Replit Secrets. Jarvis never writes secrets into its config file. OAuth login flows are intentionally not faked; for subscription providers, provide a compatible token or use the provider's supported environment setup.
The default profile is OpenCode Zen:
export JARVIS_API_KEY="..."
export JARVIS_PROVIDER=opencode
export JARVIS_MODEL=hy3-free
jarvisOther common examples:
export OPENAI_API_KEY="..."
jarvis --provider openai --model gpt-4.1
export ANTHROPIC_API_KEY="..."
jarvis --provider claude --model claude-sonnet-4
jarvis --provider ollama --model qwen3-coder
jarvis --provider lmstudio --model local-modelAdditional settings:
JARVIS_REQUEST_TIMEOUT=120000
JARVIS_MAX_TOKENS=8192
JARVIS_CONFIG=~/.jarvis/config.json
JARVIS_MEMORY=~/.jarvis/memory.json
JARVIS_AZURE_ENDPOINT=https://resource.openai.azure.com/...jarvis config prints the configuration overview. /provider and /model
choices are saved in ~/.jarvis/config.json; API keys are never saved there.
Safety and tools
The agent can list files, read files, write files, make unique-anchor edits, run
shell commands, and save memory. Every path is resolved against the selected
workspace and rejected if it escapes. Shell commands are denied by default
until approved in the TUI; use -y only for trusted, self-contained tasks.
Package publishing
The package is configured for public npm publishing under the requested scope:
npm run build
npm publish --access publicPublishing requires an npm login or automation token in the publishing environment. It is not performed automatically by the development workflow.
Existing Python import
The original Python/Textual implementation remains in jarvis/ and its
offline test suite remains available as a migration reference. The root npm
package and jarvis binary are now the primary implementation.
