terminal-jarvis 0.0.4 → 0.0.6

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.
Files changed (3) hide show
  1. package/README.md +83 -49
  2. package/lib/index.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![NPM Downloads](https://img.shields.io/npm/dm/terminal-jarvis.svg)](https://www.npmjs.com/package/terminal-jarvis)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
- A thin Rust wrapper that provides a unified interface for managing and running AI coding tools. In the midst of all the tools out there that you can possibly use to keep track of them, here's a "shovel" that just works to try them all out.
7
+ A thin Rust wrapper that provides a unified interface for managing and running AI coding tools like claude-code, gemini-cli, qwen-code, and opencode. Think of it as a package manager and runner for AI coding assistants.
8
8
 
9
9
  🎉 **Now available on NPM!** Get started instantly with `npx terminal-jarvis`
10
10
 
@@ -16,26 +16,31 @@ npx terminal-jarvis
16
16
 
17
17
  # Or install globally
18
18
  npm install -g terminal-jarvis
19
+
20
+ # For full functionality, install from source:
21
+ cargo install --git https://github.com/BA-CalderonMorales/terminal-jarvis
19
22
  ```
20
23
 
21
- > **Note**: The current NPM version (0.0.1) is a preview release. Full binary functionality will be available in upcoming releases through automated GitHub Actions builds for multiple platforms.
24
+ > **Note**: The current NPM version (0.0.6) is a preview release. Full binary functionality with the interactive T.JARVIS interface is available when installed from source.
22
25
 
23
26
  ## Features
24
27
 
25
- Terminal Jarvis serves as a command-line orchestrator for various AI coding tools, providing:
26
-
27
- - **Unified Interface**: Single CLI to manage multiple AI coding tools
28
- - **Built-in Tool Support**:
29
- - `claude-code`
30
- - `gemini-cli`
31
- - `qwen-code`
32
- - `opencode`
33
- - **Extensible Architecture**: Easy addition of new CLI tools
34
- - **Package Management**:
35
- - Update all packages at once
36
- - Update specific packages individually
37
- - Run individual packages with custom arguments
38
- - **Template Management**: Create and maintain your own GitHub repository for agent templates (requires `gh` CLI and user consent)
28
+ Terminal Jarvis serves as your AI coding assistant command center, providing:
29
+
30
+ - **🤖 Interactive T.JARVIS Interface**: Sleek terminal UI with ASCII art logo and responsive design
31
+ - **🚀 One-Click Tool Management**: Install, update, and run AI coding tools seamlessly
32
+ - **📦 Smart Installation Detection**: Automatically detects installed tools and their status
33
+ - **⚡ Quick Launch Mode**: Run tools directly from the interactive interface
34
+ - **🔧 Built-in Tool Support**:
35
+ - `claude` - Anthropic's Claude for code assistance
36
+ - `gemini` - Google's Gemini CLI tool
37
+ - `qwen` - Qwen coding assistant
38
+ - `opencode` - OpenCode AI coding agent built for the terminal
39
+ - **🎯 Intelligent NPM Validation**: Warns about missing dependencies and provides installation guidance
40
+ - **📱 Responsive Design**: Adapts to your terminal width for optimal display
41
+ - **🔄 Background Process Support**: Handles long-running tools appropriately
42
+ - **💬 Interactive Argument Input**: Prompt-based argument collection for tools
43
+ - **🛠️ Management Menu**: Organized options for installing, updating, and getting tool information
39
44
 
40
45
  ## Installation
41
46
 
@@ -68,23 +73,40 @@ cargo install --path .
68
73
  ### Basic Commands
69
74
 
70
75
  ```bash
71
- # Run a specific tool
72
- terminal-jarvis run claude-code --prompt "Refactor this function"
73
- terminal-jarvis run gemini-cli --file src/main.rs
74
- terminal-jarvis run qwen-code --analyze
76
+ # Launch interactive T.JARVIS interface (recommended)
77
+ terminal-jarvis
78
+
79
+ # Or use direct commands:
80
+ terminal-jarvis run claude --prompt "Refactor this function"
81
+ terminal-jarvis run gemini --file src/main.rs
82
+ terminal-jarvis run qwen --analyze
75
83
  terminal-jarvis run opencode --generate
76
84
 
85
+ # Install specific tools
86
+ terminal-jarvis install claude
87
+ terminal-jarvis install gemini
88
+
77
89
  # Update packages
78
90
  terminal-jarvis update # Update all packages
79
- terminal-jarvis update claude-code # Update specific package
91
+ terminal-jarvis update claude # Update specific package
80
92
 
81
- # List available tools
93
+ # List available tools with status
82
94
  terminal-jarvis list
83
95
 
84
- # Show tool information
85
- terminal-jarvis info claude-code
96
+ # Show detailed tool information
97
+ terminal-jarvis info claude
86
98
  ```
87
99
 
100
+ ### Interactive Mode Features
101
+
102
+ When you run `terminal-jarvis` without arguments, you get the full T.JARVIS experience:
103
+
104
+ - **🎨 Beautiful ASCII Art Interface**: Clean, centered T.JARVIS logo
105
+ - **📊 Real-time Tool Status**: See which tools are installed and ready to launch
106
+ - **⚡ Quick Launch**: Select tools and provide arguments interactively
107
+ - **🔧 Management Options**: Install, update, and get information about tools
108
+ - **💡 Smart Guidance**: Helpful tips and warnings about missing dependencies
109
+
88
110
  ### Template Management
89
111
 
90
112
  ```bash
@@ -107,35 +129,39 @@ The project follows a modular architecture designed for maintainability and exte
107
129
 
108
130
  ```
109
131
  src/
110
- ├── main.rs # Entry point - minimal code, delegates to CLI
111
- ├── cli.rs # Clean, expressive CLI interface definitions
112
- ├── cli_logic.rs # Business logic separated from CLI implementation
113
- ├── services.rs # Service layer for external tools (gh CLI, etc.)
114
- ├── api.rs # Modular API endpoint definitions
115
- ├── api_base.rs # Base API route configurations
116
- └── api_client.rs # HTTP client abstraction layer (reqwest wrapper)
132
+ ├── main.rs # Entry point - minimal code, delegates to CLI
133
+ ├── cli.rs # Clean, expressive CLI interface definitions
134
+ ├── cli_logic.rs # Business logic with interactive T.JARVIS interface
135
+ ├── tools.rs # Tool management and detection logic
136
+ ├── installation_arguments.rs # Installation commands and NPM validation
137
+ ├── services.rs # Service layer for external tools (gh CLI, etc.)
138
+ ├── config.rs # TOML configuration management
139
+ ├── api.rs # Modular API endpoint definitions (future use)
140
+ ├── api_base.rs # Base API route configurations (future use)
141
+ └── api_client.rs # HTTP client abstraction layer (future use)
117
142
  ```
118
143
 
119
144
  ### Architecture Philosophy
120
145
 
121
146
  - **`main.rs`**: Entry point with minimal code - simply bootstraps the CLI
122
- - **`cli.rs`**: Expressive command definitions that clearly show what each command does
123
- - **`cli_logic.rs`**: All business logic separated from CLI parsing for better testability
147
+ - **`cli.rs`**: Expressive command definitions with optional subcommands (defaults to interactive mode)
148
+ - **`cli_logic.rs`**: Complete business logic including the interactive T.JARVIS interface with ASCII art
149
+ - **`tools.rs`**: Comprehensive tool detection using multiple verification methods (`which`, `--version`, `--help`)
150
+ - **`installation_arguments.rs`**: Centralized installation commands with NPM dependency validation
124
151
  - **`services.rs`**: Service layer for external integrations (GitHub CLI, package managers)
125
- - **`api.rs`**: Modular API layer for potential future web integrations
126
- - **`api_base.rs`**: Base configurations and route definitions
127
- - **`api_client.rs`**: HTTP client abstraction for easy swapping of underlying libraries
152
+ - **`config.rs`**: TOML configuration file management
153
+ - **API modules**: Framework code for future web integrations (currently unused)
128
154
 
129
- The `cli.rs` file maintains clean separation by calling services and API routes in an understandable, non-overwhelming manner.
155
+ The interactive mode provides a complete T.JARVIS experience with real-time tool status, installation management, and a beautiful terminal interface.
130
156
 
131
157
  ## Supported Tools
132
158
 
133
- | Tool | Description | Status |
134
- |------|-------------|--------|
135
- | `claude-code` | Anthropic's Claude for code assistance | ✅ Supported |
136
- | `gemini-cli` | Google's Gemini CLI tool | ✅ Supported |
137
- | `qwen-code` | Qwen coding assistant | ✅ Supported |
138
- | `opencode` | Open-source coding tool | ✅ Supported |
159
+ | Tool | Description | NPM Package | Status |
160
+ |------|-------------|-------------|--------|
161
+ | `claude` | Anthropic's Claude for code assistance | `@anthropic-ai/claude-code` | ✅ Supported |
162
+ | `gemini` | Google's Gemini CLI tool | `@google/gemini-cli` | ✅ Supported |
163
+ | `qwen` | Qwen coding assistant | `@qwen-code/qwen-code` | ✅ Supported |
164
+ | `opencode` | OpenCode AI coding agent built for the terminal | Install script | ✅ Supported |
139
165
 
140
166
  ## Adding New Tools
141
167
 
@@ -163,9 +189,12 @@ pub struct NewToolArgs {
163
189
 
164
190
  ## Requirements
165
191
 
166
- - Rust 1.70 or later
167
- - `gh` CLI (for template management features)
168
- - Internet connection (for package updates)
192
+ - **Node.js and NPM**: Required for most AI coding tools (automatic validation included)
193
+ - **Rust 1.70 or later**: For building from source
194
+ - **`gh` CLI**: Optional, for template management features
195
+ - **Internet connection**: For package updates and installations
196
+
197
+ Terminal Jarvis automatically detects missing dependencies and provides helpful installation guidance.
169
198
 
170
199
  ## Configuration
171
200
 
@@ -178,9 +207,9 @@ Example configuration:
178
207
 
179
208
  ```toml
180
209
  [tools]
181
- claude-code = { enabled = true, auto_update = true }
182
- gemini-cli = { enabled = true, auto_update = false }
183
- qwen-code = { enabled = true, auto_update = true }
210
+ claude = { enabled = true, auto_update = true }
211
+ gemini = { enabled = true, auto_update = false }
212
+ qwen = { enabled = true, auto_update = true }
184
213
  opencode = { enabled = false, auto_update = false }
185
214
 
186
215
  [templates]
@@ -218,9 +247,14 @@ The NPM packaging approach follows the excellent guidance from [Packaging Rust A
218
247
 
219
248
  ## Roadmap
220
249
 
250
+ - [x] **Interactive T.JARVIS Interface**: Complete ASCII art terminal UI
251
+ - [x] **Smart Tool Detection**: Multi-method tool installation verification
252
+ - [x] **One-Click Installation**: Seamless tool installation with NPM validation
253
+ - [x] **Responsive Terminal Design**: Adaptive width and centered interface
221
254
  - [ ] Enhanced error handling and logging
222
255
  - [ ] Configuration file validation
223
256
  - [ ] Plugin system for custom tools
224
257
  - [ ] Shell completion scripts
225
258
  - [ ] Docker container support
226
259
  - [ ] Web dashboard for tool management
260
+ - [ ] Automated GitHub Actions builds for platform-specific NPM binaries
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- console.log("Terminal Jarvis v0.0.4");
3
+ console.log("Terminal Jarvis v0.0.6");
4
4
  console.log("This is a preview release - full binary support coming soon!");
5
5
  console.log("");
6
6
  console.log("Available commands:");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terminal-jarvis",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "A thin Rust wrapper that provides a unified interface for managing and running AI coding tools",
5
5
  "bin": "lib/index.js",
6
6
  "files": [