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.
- package/README.md +83 -49
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[](https://www.npmjs.com/package/terminal-jarvis)
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
6
6
|
|
7
|
-
A thin Rust wrapper that provides a unified interface for managing and running AI coding tools
|
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.
|
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
|
26
|
-
|
27
|
-
-
|
28
|
-
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
- `
|
33
|
-
-
|
34
|
-
-
|
35
|
-
-
|
36
|
-
|
37
|
-
|
38
|
-
-
|
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
|
-
#
|
72
|
-
terminal-jarvis
|
73
|
-
|
74
|
-
|
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
|
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
|
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
|
111
|
-
├── cli.rs
|
112
|
-
├── cli_logic.rs
|
113
|
-
├──
|
114
|
-
├──
|
115
|
-
├──
|
116
|
-
|
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
|
123
|
-
- **`cli_logic.rs`**:
|
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
|
-
- **`
|
126
|
-
-
|
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
|
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
|
136
|
-
| `gemini
|
137
|
-
| `qwen
|
138
|
-
| `opencode` |
|
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
|
-
-
|
167
|
-
-
|
168
|
-
-
|
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
|
182
|
-
gemini
|
183
|
-
qwen
|
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