terminal-jarvis 0.0.79 → 0.0.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,13 +4,15 @@
4
4
 
5
5
  **Unified command center for AI coding tools**
6
6
 
7
- Manage Claude, Gemini, Qwen, and 19 more AI assistants from one terminal interface.
7
+ Manage Claude, Gemini, Qwen, and 20 more AI assistants from one terminal interface.
8
8
 
9
9
  [![NPM Version](https://img.shields.io/npm/v/terminal-jarvis.svg?logo=npm&style=flat-square)](https://www.npmjs.com/package/terminal-jarvis)
10
10
  [![Crates.io](https://img.shields.io/crates/v/terminal-jarvis.svg?logo=rust&style=flat-square)](https://crates.io/crates/terminal-jarvis)
11
11
  [![Homebrew](https://img.shields.io/badge/Homebrew-Available-blue.svg?logo=homebrew&style=flat-square)](https://github.com/BA-CalderonMorales/homebrew-terminal-jarvis)
12
12
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
13
13
  [![Mentioned in Awesome](https://img.shields.io/badge/Mentioned%20in-Awesome-6f42c1?style=flat-square)](https://github.com/Piebald-AI/awesome-gemini-cli)
14
+ [![Docs](https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square)](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/)
15
+ [![Coverage](https://img.shields.io/badge/coverage-report-green.svg?style=flat-square)](/coverage)
14
16
 
15
17
  <img src="https://raw.githubusercontent.com/BA-CalderonMorales/terminal-jarvis/docs/screenshots_and_demos/screenshots_and_demo/promo_image_for_readme.png" alt="Terminal Jarvis Interface" width="100%">
16
18
 
@@ -52,7 +54,7 @@ brew tap ba-calderonmorales/terminal-jarvis && brew install terminal-jarvis # H
52
54
  | Feature | Description |
53
55
  |:--------|:------------|
54
56
  | **Interactive Interface** | Beautiful terminal UI with ASCII art, themed menus, and keyboard navigation for a polished command-line experience. |
55
- | **22 AI Tools Supported** | Claude, Gemini, Qwen, OpenCode, Codex, Aider, Goose, Amp, Crush, LLXPRT, and many more - all manageable from a single interface. |
57
+ | **25 AI Tools Supported** | Claude, Gemini, Qwen, OpenCode, Codex, Aider, Goose, Amp, Crush, LLXPRT, and many more - all manageable from a single interface. |
56
58
  | **Integrated Installation** | Install, update, or uninstall any supported AI tool directly from the menu without leaving the terminal. |
57
59
  | **Session Continuity** | Preserves your terminal session state during browser-based authentication flows. Currently in development with expanding coverage. |
58
60
 
@@ -67,7 +69,7 @@ Full guides at **[Terminal Jarvis Docs](https://ba-calderonmorales.github.io/my-
67
69
  | Guide | Description |
68
70
  |:------|:------------|
69
71
  | [Installation](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/quick_start/installation/) | Step-by-step platform setup for NPM, Cargo, and Homebrew with troubleshooting tips for common issues. |
70
- | [AI Tools](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/quick_start/ai-tools/) | Detailed overview of all 11 supported AI coding assistants including authentication requirements and capabilities. |
72
+ | [AI Tools](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/quick_start/ai-tools/) | Detailed overview of all 25 supported AI coding assistants including authentication requirements and capabilities. |
71
73
  | [Configuration](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/quick_start/configuration/) | Customize themes, keybindings, default tools, and environment variables to match your workflow. |
72
74
  | [Architecture](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/details/architecture/) | Technical deep-dive into the Rust codebase, module organization, and design decisions. |
73
75
 
@@ -81,7 +83,7 @@ terminal-jarvis/
81
83
  ├── src/ # Rust application
82
84
  │ ├── main.rs # Entry point
83
85
  │ ├── cli.rs # CLI definitions
84
- │ ├── cli_logic/ # Business logic (22 modules)
86
+ │ ├── cli_logic/ # Business logic (19 modules)
85
87
  │ ├── auth_manager/ # Authentication (8 modules)
86
88
  │ ├── config/ # Configuration (6 modules)
87
89
  │ ├── services/ # External integrations (6 modules)
@@ -8,7 +8,7 @@ config_key = "code"
8
8
  description = "Fork of Codex AI - multi-provider coding agent"
9
9
  homepage = "https://github.com/just-every/code"
10
10
  documentation = "https://github.com/just-every/code"
11
- cli_command = "code"
11
+ cli_command = "coder"
12
12
  requires_npm = true
13
13
  requires_sudo = false
14
14
  status = "experimental"
@@ -16,13 +16,13 @@ status = "experimental"
16
16
  [tool.install]
17
17
  command = "npm"
18
18
  args = ["install", "-g", "@just-every/code"]
19
- verify_command = "code --version"
20
- post_install_message = "Code installed! If 'code' conflicts with VS Code, check alias."
19
+ verify_command = "coder --version"
20
+ post_install_message = "Code installed! Run it with 'coder'."
21
21
 
22
22
  [tool.update]
23
23
  command = "npm"
24
24
  args = ["update", "-g", "@just-every/code"]
25
- verify_command = "code --version"
25
+ verify_command = "coder --version"
26
26
 
27
27
  [tool.auth]
28
28
  env_vars = ["OPENAI_API_KEY"]
@@ -0,0 +1,60 @@
1
+ # =============================================================================
2
+ # HERMES AGENT - Nous Research terminal agent
3
+ # =============================================================================
4
+
5
+ [tool]
6
+ display_name = "Hermes Agent"
7
+ config_key = "hermes"
8
+ description = "Nous Research's terminal AI agent with CLI, TUI, tools, skills, and messaging gateway support"
9
+ homepage = "https://hermes-agent.nousresearch.com/"
10
+ documentation = "https://hermes-agent.nousresearch.com/docs/"
11
+ cli_command = "hermes"
12
+ requires_npm = false
13
+ requires_sudo = false
14
+ status = "experimental"
15
+
16
+ [tool.install]
17
+ command = "bash"
18
+ args = [
19
+ "-lc",
20
+ "curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash -s -- --skip-setup",
21
+ ]
22
+ verify_command = "hermes --version"
23
+ post_install_message = "Hermes Agent installed successfully! Run 'hermes setup' or 'hermes model' to configure a provider."
24
+
25
+ [tool.update]
26
+ command = "hermes"
27
+ args = ["update"]
28
+ verify_command = "hermes --version"
29
+
30
+ [tool.auth]
31
+ env_vars = [
32
+ "OPENROUTER_API_KEY",
33
+ "AI_GATEWAY_API_KEY",
34
+ "HF_TOKEN",
35
+ "ANTHROPIC_API_KEY",
36
+ "OPENAI_API_KEY",
37
+ "GOOGLE_API_KEY",
38
+ "GEMINI_API_KEY",
39
+ ]
40
+ setup_url = "https://hermes-agent.nousresearch.com/docs/integrations/providers/"
41
+ browser_auth = true
42
+ auth_instructions = "Run 'hermes setup', 'hermes model', or set a supported provider key in ~/.hermes/.env. Hermes supports browser/OAuth providers and API-key providers such as OpenRouter, AI Gateway, Hugging Face, Anthropic, OpenAI-compatible endpoints, and Gemini."
43
+ auth_mode = "any"
44
+ default_env_var = "OPENROUTER_API_KEY"
45
+ cli_auth_command = "hermes setup"
46
+ providers = [
47
+ {name = "OpenRouter", env_var = "OPENROUTER_API_KEY", key_hint = "sk-or-*", setup_url = "https://openrouter.ai/keys"},
48
+ {name = "AI Gateway", env_var = "AI_GATEWAY_API_KEY", setup_url = "https://ai-gateway.vercel.sh/"},
49
+ {name = "Hugging Face", env_var = "HF_TOKEN", key_hint = "hf_*", setup_url = "https://huggingface.co/settings/tokens"},
50
+ {name = "Anthropic", env_var = "ANTHROPIC_API_KEY", key_hint = "sk-ant-*", setup_url = "https://console.anthropic.com/"},
51
+ {name = "OpenAI-compatible", env_var = "OPENAI_API_KEY", key_hint = "sk-*", setup_url = "https://platform.openai.com/api-keys"},
52
+ {name = "Google Gemini", env_var = "GOOGLE_API_KEY", key_hint = "AIza*", setup_url = "https://aistudio.google.com/app/apikey"},
53
+ ]
54
+
55
+ [tool.features]
56
+ supports_files = true
57
+ supports_streaming = true
58
+ supports_conversation = true
59
+ max_context_tokens = 200000
60
+ supported_languages = ["all"]
@@ -6,8 +6,8 @@
6
6
  display_name = "Nanocoder"
7
7
  config_key = "nanocoder"
8
8
  description = "Local-first coding agent"
9
- homepage = "https://github.com/motesoftware/nanocoder"
10
- documentation = "https://github.com/motesoftware/nanocoder"
9
+ homepage = "https://github.com/Nano-Collective/nanocoder"
10
+ documentation = "https://github.com/Nano-Collective/nanocoder"
11
11
  cli_command = "nanocoder"
12
12
  requires_npm = true
13
13
  requires_sudo = false
@@ -15,13 +15,13 @@ status = "experimental"
15
15
 
16
16
  [tool.install]
17
17
  command = "npm"
18
- args = ["install", "-g", "@motesoftware/nanocoder"]
18
+ args = ["install", "-g", "@nanocollective/nanocoder"]
19
19
  verify_command = "nanocoder --version"
20
20
  post_install_message = "Nanocoder installed!"
21
21
 
22
22
  [tool.update]
23
23
  command = "npm"
24
- args = ["update", "-g", "@motesoftware/nanocoder"]
24
+ args = ["update", "-g", "@nanocollective/nanocoder"]
25
25
  verify_command = "nanocoder --version"
26
26
 
27
27
  [tool.auth]
@@ -0,0 +1,44 @@
1
+ # =============================================================================
2
+ # OPENCLAW - AI gateway and coding agent
3
+ # =============================================================================
4
+
5
+ [tool]
6
+ display_name = "OpenClaw"
7
+ config_key = "openclaw"
8
+ description = "Open-source AI coding assistant and multi-channel local gateway"
9
+ homepage = "https://openclaw.ai/"
10
+ documentation = "https://docs.openclaw.ai/"
11
+ cli_command = "openclaw"
12
+ requires_npm = true
13
+ requires_sudo = false
14
+ status = "experimental"
15
+
16
+ [tool.install]
17
+ command = "npm"
18
+ args = ["install", "-g", "openclaw"]
19
+ verify_command = "openclaw --version"
20
+ post_install_message = "OpenClaw installed successfully! Run 'openclaw onboard' or 'openclaw setup' to configure providers and gateway settings."
21
+
22
+ [tool.update]
23
+ command = "openclaw"
24
+ args = ["update", "--yes", "--no-restart"]
25
+ verify_command = "openclaw --version"
26
+
27
+ [tool.auth]
28
+ env_vars = ["OPENROUTER_API_KEY"]
29
+ setup_url = "https://docs.openclaw.ai/"
30
+ browser_auth = true
31
+ auth_instructions = "Run 'openclaw onboard' to configure providers. For headless OpenRouter setup, use 'openclaw onboard --auth-choice openrouter-api-key'. OpenClaw can manage local gateway services, ports, webhooks, and token storage, so review gateway and provider settings before enabling persistent services."
32
+ auth_mode = "any"
33
+ default_env_var = "OPENROUTER_API_KEY"
34
+ cli_auth_command = "openclaw onboard"
35
+ providers = [
36
+ {name = "OpenRouter", env_var = "OPENROUTER_API_KEY", key_hint = "sk-or-*", setup_url = "https://openrouter.ai/keys"},
37
+ ]
38
+
39
+ [tool.features]
40
+ supports_files = true
41
+ supports_streaming = true
42
+ supports_conversation = true
43
+ max_context_tokens = 200000
44
+ supported_languages = ["all"]
@@ -6,8 +6,8 @@
6
6
  display_name = "Pi"
7
7
  config_key = "pi"
8
8
  description = "Terminal-based coding agent"
9
- homepage = "https://github.com/mariozechner/pi-coding-agent"
10
- documentation = "https://github.com/mariozechner/pi-coding-agent"
9
+ homepage = "https://github.com/earendil-works/pi-mono"
10
+ documentation = "https://github.com/earendil-works/pi-mono"
11
11
  cli_command = "pi"
12
12
  requires_npm = true
13
13
  requires_sudo = false
@@ -15,13 +15,13 @@ status = "experimental"
15
15
 
16
16
  [tool.install]
17
17
  command = "npm"
18
- args = ["install", "-g", "@mariozechner/pi-coding-agent"]
18
+ args = ["install", "-g", "@earendil-works/pi-coding-agent"]
19
19
  verify_command = "pi --version"
20
20
  post_install_message = "Pi installed!"
21
21
 
22
22
  [tool.update]
23
23
  command = "npm"
24
- args = ["update", "-g", "@mariozechner/pi-coding-agent"]
24
+ args = ["update", "-g", "@earendil-works/pi-coding-agent"]
25
25
  verify_command = "pi --version"
26
26
 
27
27
  [tool.auth]
package/index.d.ts ADDED
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Terminal Jarvis - TypeScript Type Definitions
3
+ *
4
+ * A thin wrapper that provides a unified interface for managing
5
+ * and running AI coding tools including Claude, Gemini, Qwen,
6
+ * OpenCode, Codex, Aider, Goose, Amp, Crush, LLXPRT, and more.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+
11
+ /**
12
+ * Options for running Terminal Jarvis
13
+ */
14
+ export interface JarvisOptions {
15
+ /** Run in headless mode without interactive prompts */
16
+ headless?: boolean;
17
+ /** UI theme to use */
18
+ theme?: "default" | "classic" | "matrix";
19
+ /** Enable verbose logging */
20
+ verbose?: boolean;
21
+ /** Configuration file path */
22
+ config?: string;
23
+ }
24
+
25
+ /**
26
+ * Execute a terminal-jarvis command with the specified tool
27
+ *
28
+ * @param tool - The AI tool to run (e.g., "claude", "gemini", "codex")
29
+ * @param options - Optional configuration for the execution
30
+ * @returns Promise that resolves when the command completes
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { run } from "terminal-jarvis";
35
+ *
36
+ * await run("claude", { theme: "matrix" });
37
+ * ```
38
+ */
39
+ export function run(tool: string, options?: JarvisOptions): Promise<void>;
40
+
41
+ /**
42
+ * Execute terminal-jarvis with raw command arguments
43
+ *
44
+ * @param args - Array of command-line arguments to pass to terminal-jarvis
45
+ * @returns Promise that resolves with the exit code
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * import { runRaw } from "terminal-jarvis";
50
+ *
51
+ * const exitCode = await runRaw(["--version"]);
52
+ * ```
53
+ */
54
+ export function runRaw(args: string[]): Promise<number>;
55
+
56
+ /**
57
+ * Get the path to the bundled Rust binary
58
+ *
59
+ * @returns The absolute path to the binary, or null if not found
60
+ */
61
+ export function getBinaryPath(): string | null;
62
+
63
+ /**
64
+ * Check if terminal-jarvis is properly installed and available
65
+ *
66
+ * @returns Promise that resolves to true if available
67
+ */
68
+ export function isAvailable(): Promise<boolean>;
69
+
70
+ /**
71
+ * Supported AI tools that can be managed through Terminal Jarvis
72
+ */
73
+ export type SupportedTool =
74
+ | "claude"
75
+ | "gemini"
76
+ | "qwen"
77
+ | "opencode"
78
+ | "codex"
79
+ | "aider"
80
+ | "goose"
81
+ | "amp"
82
+ | "crush"
83
+ | "llxprt"
84
+ | string;
85
+
86
+ /**
87
+ * Version information for Terminal Jarvis
88
+ */
89
+ export interface VersionInfo {
90
+ /** NPM wrapper version */
91
+ npmVersion: string;
92
+ /** Core Rust binary version */
93
+ coreVersion: string;
94
+ /** Platform binary was built for */
95
+ platform: string;
96
+ }
97
+
98
+ /**
99
+ * Get version information for Terminal Jarvis
100
+ *
101
+ * @returns Promise that resolves with version information
102
+ */
103
+ export function getVersion(): Promise<VersionInfo>;
package/package.json CHANGED
@@ -1,17 +1,19 @@
1
1
  {
2
2
  "name": "terminal-jarvis",
3
- "version": "0.0.79",
3
+ "version": "0.0.81",
4
4
  "description": "AI Coding Tools Wrapper - Unified interface for claude-code, gemini-cli, qwen-code, opencode, llxprt, codex, crush, goose, amp, and aider",
5
5
  "bin": {
6
6
  "terminal-jarvis": "bin/terminal-jarvis"
7
7
  },
8
+ "types": "index.d.ts",
8
9
  "files": [
9
10
  "lib/",
10
11
  "bin/",
11
12
  "scripts/",
12
13
  "config/",
13
14
  "README.md",
14
- "package.json"
15
+ "package.json",
16
+ "index.d.ts"
15
17
  ],
16
18
  "scripts": {
17
19
  "generate-tools": "../../scripts/utils/generate-readme-tools.sh",
@@ -30,6 +32,7 @@
30
32
  "test:watch": "vitest",
31
33
  "test:ui": "vitest --ui",
32
34
  "test:coverage": "vitest run --coverage",
35
+ "typecheck": "tsc --noEmit && echo 'TypeScript type check passed'",
33
36
  "test:e2e": "npm run build-rust && vitest run",
34
37
  "build": "npm run copy-configs && npm run sync-readme-npm",
35
38
  "prepack": "npm run build",