jarvis-ai-cli
v1.0.5
Published
J.A.R.V.I.S - Just A Rather Very Intelligent System by Nitesh, powered by Gemini
Maintainers
Readme
J.A.R.V.I.S CLI
Just A Rather Very Intelligent System
Created by Nitesh · Powered by Gemini
A premium terminal-based AI assistant with a Monokai-inspired aesthetic, multi-provider support, and a cinematic CLI experience.
Installation
# Install dependencies
npm install
# Build
npm run build
# Run
npm start
# Or run directly with ts-node (dev)
npm run devOr with Bun:
bun install
bun run src/index.tsFirst Launch
On first launch, JARVIS will walk you through:
- Provider selection — Choose from Gemini (recommended), OpenAI, Claude, Qwen, Grok, OpenRouter, or a custom OpenAI-compatible API
- API Key entry — Securely masked input
Config is saved locally and persists across sessions.
Commands
| Command | Description |
|---|---|
| /help | Show all commands |
| /settings | View & change settings |
| /provider | Switch AI provider |
| /model | Change active model |
| /key | Update API key |
| /clear | Clear terminal |
| /history | Show chat history |
| /about | About J.A.R.V.I.S |
| /exit | Exit |
Supported Providers
| Provider | Models | |---|---| | Gemini (default) | gemini-2.5-flash, gemini-2.5-pro, gemini-2.0-flash, ... | | OpenAI | gpt-4o, gpt-4o-mini, gpt-4-turbo, ... | | Claude | claude-opus-4, claude-sonnet-4-5, ... | | Qwen | qwen-plus, qwen-max, qwen-turbo, ... | | Grok | grok-3-mini, grok-3, grok-beta | | OpenRouter | openai/gpt-4o, anthropic/claude-3.5-sonnet, ... | | Custom | Any OpenAI-compatible endpoint |
Architecture
src/
├── index.ts # Entry point
├── providers/
│ ├── types.ts # Interfaces
│ ├── factory.ts # Provider factory
│ ├── gemini.ts # Gemini provider
│ ├── claude.ts # Claude provider
│ └── openai-compatible.ts # OpenAI/Qwen/Grok/OpenRouter/Custom
├── commands/
│ ├── onboarding.ts # First-launch setup
│ ├── repl.ts # Main chat REPL
│ └── settings.ts # Settings commands
├── config/
│ └── store.ts # Config persistence
└── ui/
├── theme.ts # Monokai color palette
├── display.ts # Logo, boot, prompts
└── markdown.ts # Terminal markdown rendererVisual Style
JARVIS uses a Monokai-inspired palette:
- Background:
#1E1F1C - Cyan:
#66D9EF - Green:
#A6E22E - Orange:
#FD971F - Purple:
#AE81FF - Pink:
#F92672 - White:
#F8F8F2
Extending with New Providers
Implement the Provider interface from src/providers/types.ts:
export interface Provider {
name: string;
chat(messages: Message[], onChunk?: (chunk: string) => void): Promise<string>;
getDefaultModel(): string;
getAvailableModels(): string[];
}Then register it in src/providers/factory.ts.
