terminal-jarvis 0.0.82 → 0.1.1

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 (308) hide show
  1. package/README.md +62 -143
  2. package/bin/terminal-jarvis +28 -29
  3. package/bin/terminal-jarvis-bin +0 -0
  4. package/harnesses/aider/download/index.toml +3 -0
  5. package/harnesses/aider/headless/index.toml +3 -0
  6. package/harnesses/aider/index.toml +6 -0
  7. package/harnesses/aider/models/index.toml +3 -0
  8. package/harnesses/aider/security/index.toml +3 -0
  9. package/harnesses/aider/stats/index.toml +3 -0
  10. package/harnesses/aider/ui/index.toml +3 -0
  11. package/harnesses/aider/update/index.toml +3 -0
  12. package/harnesses/aider/version/index.toml +3 -0
  13. package/harnesses/aider/yolo/index.toml +3 -0
  14. package/harnesses/amp/download/index.toml +3 -0
  15. package/harnesses/amp/headless/index.toml +3 -0
  16. package/harnesses/amp/index.toml +6 -0
  17. package/harnesses/amp/models/index.toml +3 -0
  18. package/harnesses/amp/security/index.toml +3 -0
  19. package/harnesses/amp/stats/index.toml +3 -0
  20. package/harnesses/amp/ui/index.toml +3 -0
  21. package/harnesses/amp/update/index.toml +3 -0
  22. package/harnesses/amp/version/index.toml +3 -0
  23. package/harnesses/amp/yolo/index.toml +3 -0
  24. package/harnesses/claude/download/index.toml +3 -0
  25. package/harnesses/claude/headless/index.toml +3 -0
  26. package/harnesses/claude/index.toml +6 -0
  27. package/harnesses/claude/models/index.toml +3 -0
  28. package/harnesses/claude/security/index.toml +3 -0
  29. package/harnesses/claude/stats/index.toml +3 -0
  30. package/harnesses/claude/ui/index.toml +3 -0
  31. package/harnesses/claude/update/index.toml +3 -0
  32. package/harnesses/claude/version/index.toml +3 -0
  33. package/harnesses/claude/yolo/index.toml +3 -0
  34. package/harnesses/code/download/index.toml +3 -0
  35. package/harnesses/code/headless/index.toml +3 -0
  36. package/harnesses/code/index.toml +6 -0
  37. package/harnesses/code/models/index.toml +3 -0
  38. package/harnesses/code/security/index.toml +3 -0
  39. package/harnesses/code/stats/index.toml +3 -0
  40. package/harnesses/code/ui/index.toml +3 -0
  41. package/harnesses/code/update/index.toml +3 -0
  42. package/harnesses/code/version/index.toml +3 -0
  43. package/harnesses/code/yolo/index.toml +3 -0
  44. package/harnesses/codex/download/index.toml +3 -0
  45. package/harnesses/codex/headless/index.toml +3 -0
  46. package/harnesses/codex/index.toml +6 -0
  47. package/harnesses/codex/models/index.toml +3 -0
  48. package/harnesses/codex/security/index.toml +3 -0
  49. package/harnesses/codex/stats/index.toml +3 -0
  50. package/harnesses/codex/ui/index.toml +3 -0
  51. package/harnesses/codex/update/index.toml +3 -0
  52. package/harnesses/codex/version/index.toml +3 -0
  53. package/harnesses/codex/yolo/index.toml +3 -0
  54. package/harnesses/copilot/download/index.toml +3 -0
  55. package/harnesses/copilot/headless/index.toml +3 -0
  56. package/harnesses/copilot/index.toml +6 -0
  57. package/harnesses/copilot/models/index.toml +3 -0
  58. package/harnesses/copilot/security/index.toml +3 -0
  59. package/harnesses/copilot/stats/index.toml +3 -0
  60. package/harnesses/copilot/ui/index.toml +3 -0
  61. package/harnesses/copilot/update/index.toml +3 -0
  62. package/harnesses/copilot/version/index.toml +3 -0
  63. package/harnesses/copilot/yolo/index.toml +3 -0
  64. package/harnesses/crush/download/index.toml +3 -0
  65. package/harnesses/crush/headless/index.toml +3 -0
  66. package/harnesses/crush/index.toml +6 -0
  67. package/harnesses/crush/models/index.toml +3 -0
  68. package/harnesses/crush/security/index.toml +3 -0
  69. package/harnesses/crush/stats/index.toml +3 -0
  70. package/harnesses/crush/ui/index.toml +3 -0
  71. package/harnesses/crush/update/index.toml +3 -0
  72. package/harnesses/crush/version/index.toml +3 -0
  73. package/harnesses/crush/yolo/index.toml +3 -0
  74. package/harnesses/cursor-agent/download/index.toml +3 -0
  75. package/harnesses/cursor-agent/headless/index.toml +3 -0
  76. package/harnesses/cursor-agent/index.toml +6 -0
  77. package/harnesses/cursor-agent/models/index.toml +3 -0
  78. package/harnesses/cursor-agent/security/index.toml +3 -0
  79. package/harnesses/cursor-agent/stats/index.toml +3 -0
  80. package/harnesses/cursor-agent/ui/index.toml +3 -0
  81. package/harnesses/cursor-agent/update/index.toml +3 -0
  82. package/harnesses/cursor-agent/version/index.toml +3 -0
  83. package/harnesses/cursor-agent/yolo/index.toml +3 -0
  84. package/harnesses/droid/download/index.toml +3 -0
  85. package/harnesses/droid/headless/index.toml +3 -0
  86. package/harnesses/droid/index.toml +6 -0
  87. package/harnesses/droid/models/index.toml +3 -0
  88. package/harnesses/droid/security/index.toml +3 -0
  89. package/harnesses/droid/stats/index.toml +3 -0
  90. package/harnesses/droid/ui/index.toml +3 -0
  91. package/harnesses/droid/update/index.toml +3 -0
  92. package/harnesses/droid/version/index.toml +3 -0
  93. package/harnesses/droid/yolo/index.toml +3 -0
  94. package/harnesses/eca/download/index.toml +3 -0
  95. package/harnesses/eca/headless/index.toml +3 -0
  96. package/harnesses/eca/index.toml +6 -0
  97. package/harnesses/eca/models/index.toml +3 -0
  98. package/harnesses/eca/security/index.toml +3 -0
  99. package/harnesses/eca/stats/index.toml +3 -0
  100. package/harnesses/eca/ui/index.toml +3 -0
  101. package/harnesses/eca/update/index.toml +3 -0
  102. package/harnesses/eca/version/index.toml +3 -0
  103. package/harnesses/eca/yolo/index.toml +3 -0
  104. package/harnesses/forge/download/index.toml +3 -0
  105. package/harnesses/forge/headless/index.toml +3 -0
  106. package/harnesses/forge/index.toml +6 -0
  107. package/harnesses/forge/models/index.toml +3 -0
  108. package/harnesses/forge/security/index.toml +3 -0
  109. package/harnesses/forge/stats/index.toml +3 -0
  110. package/harnesses/forge/ui/index.toml +3 -0
  111. package/harnesses/forge/update/index.toml +3 -0
  112. package/harnesses/forge/version/index.toml +3 -0
  113. package/harnesses/forge/yolo/index.toml +3 -0
  114. package/harnesses/gemini/download/index.toml +3 -0
  115. package/harnesses/gemini/headless/index.toml +3 -0
  116. package/harnesses/gemini/index.toml +6 -0
  117. package/harnesses/gemini/models/index.toml +3 -0
  118. package/harnesses/gemini/security/index.toml +3 -0
  119. package/harnesses/gemini/stats/index.toml +3 -0
  120. package/harnesses/gemini/ui/index.toml +3 -0
  121. package/harnesses/gemini/update/index.toml +3 -0
  122. package/harnesses/gemini/version/index.toml +3 -0
  123. package/harnesses/gemini/yolo/index.toml +3 -0
  124. package/harnesses/goose/download/index.toml +3 -0
  125. package/harnesses/goose/headless/index.toml +3 -0
  126. package/harnesses/goose/index.toml +6 -0
  127. package/harnesses/goose/models/index.toml +3 -0
  128. package/harnesses/goose/security/index.toml +3 -0
  129. package/harnesses/goose/stats/index.toml +3 -0
  130. package/harnesses/goose/ui/index.toml +3 -0
  131. package/harnesses/goose/update/index.toml +3 -0
  132. package/harnesses/goose/version/index.toml +3 -0
  133. package/harnesses/goose/yolo/index.toml +3 -0
  134. package/harnesses/hermes/download/index.toml +3 -0
  135. package/harnesses/hermes/headless/index.toml +3 -0
  136. package/harnesses/hermes/index.toml +6 -0
  137. package/harnesses/hermes/models/index.toml +3 -0
  138. package/harnesses/hermes/security/index.toml +3 -0
  139. package/harnesses/hermes/stats/index.toml +3 -0
  140. package/harnesses/hermes/ui/index.toml +3 -0
  141. package/harnesses/hermes/update/index.toml +3 -0
  142. package/harnesses/hermes/version/index.toml +3 -0
  143. package/harnesses/hermes/yolo/index.toml +3 -0
  144. package/harnesses/jules/download/index.toml +3 -0
  145. package/harnesses/jules/headless/index.toml +3 -0
  146. package/harnesses/jules/index.toml +6 -0
  147. package/harnesses/jules/models/index.toml +3 -0
  148. package/harnesses/jules/security/index.toml +3 -0
  149. package/harnesses/jules/stats/index.toml +3 -0
  150. package/harnesses/jules/ui/index.toml +3 -0
  151. package/harnesses/jules/update/index.toml +3 -0
  152. package/harnesses/jules/version/index.toml +3 -0
  153. package/harnesses/jules/yolo/index.toml +3 -0
  154. package/harnesses/kilocode/download/index.toml +3 -0
  155. package/harnesses/kilocode/headless/index.toml +3 -0
  156. package/harnesses/kilocode/index.toml +6 -0
  157. package/harnesses/kilocode/models/index.toml +3 -0
  158. package/harnesses/kilocode/security/index.toml +3 -0
  159. package/harnesses/kilocode/stats/index.toml +3 -0
  160. package/harnesses/kilocode/ui/index.toml +3 -0
  161. package/harnesses/kilocode/update/index.toml +3 -0
  162. package/harnesses/kilocode/version/index.toml +3 -0
  163. package/harnesses/kilocode/yolo/index.toml +3 -0
  164. package/harnesses/letta/download/index.toml +3 -0
  165. package/harnesses/letta/headless/index.toml +3 -0
  166. package/harnesses/letta/index.toml +6 -0
  167. package/harnesses/letta/models/index.toml +3 -0
  168. package/harnesses/letta/security/index.toml +3 -0
  169. package/harnesses/letta/stats/index.toml +3 -0
  170. package/harnesses/letta/ui/index.toml +3 -0
  171. package/harnesses/letta/update/index.toml +3 -0
  172. package/harnesses/letta/version/index.toml +3 -0
  173. package/harnesses/letta/yolo/index.toml +3 -0
  174. package/harnesses/llxprt/download/index.toml +3 -0
  175. package/harnesses/llxprt/headless/index.toml +3 -0
  176. package/harnesses/llxprt/index.toml +6 -0
  177. package/harnesses/llxprt/models/index.toml +3 -0
  178. package/harnesses/llxprt/security/index.toml +3 -0
  179. package/harnesses/llxprt/stats/index.toml +3 -0
  180. package/harnesses/llxprt/ui/index.toml +3 -0
  181. package/harnesses/llxprt/update/index.toml +3 -0
  182. package/harnesses/llxprt/version/index.toml +3 -0
  183. package/harnesses/llxprt/yolo/index.toml +3 -0
  184. package/harnesses/nanocoder/download/index.toml +3 -0
  185. package/harnesses/nanocoder/headless/index.toml +3 -0
  186. package/harnesses/nanocoder/index.toml +6 -0
  187. package/harnesses/nanocoder/models/index.toml +3 -0
  188. package/harnesses/nanocoder/security/index.toml +3 -0
  189. package/harnesses/nanocoder/stats/index.toml +3 -0
  190. package/harnesses/nanocoder/ui/index.toml +3 -0
  191. package/harnesses/nanocoder/update/index.toml +3 -0
  192. package/harnesses/nanocoder/version/index.toml +3 -0
  193. package/harnesses/nanocoder/yolo/index.toml +3 -0
  194. package/harnesses/ollama/download/index.toml +3 -0
  195. package/harnesses/ollama/headless/index.toml +3 -0
  196. package/harnesses/ollama/index.toml +6 -0
  197. package/harnesses/ollama/models/index.toml +3 -0
  198. package/harnesses/ollama/security/index.toml +3 -0
  199. package/harnesses/ollama/stats/index.toml +3 -0
  200. package/harnesses/ollama/ui/index.toml +3 -0
  201. package/harnesses/ollama/update/index.toml +3 -0
  202. package/harnesses/ollama/version/index.toml +3 -0
  203. package/harnesses/ollama/yolo/index.toml +3 -0
  204. package/harnesses/openclaw/download/index.toml +3 -0
  205. package/harnesses/openclaw/headless/index.toml +3 -0
  206. package/harnesses/openclaw/index.toml +6 -0
  207. package/harnesses/openclaw/models/index.toml +3 -0
  208. package/harnesses/openclaw/security/index.toml +3 -0
  209. package/harnesses/openclaw/stats/index.toml +3 -0
  210. package/harnesses/openclaw/ui/index.toml +3 -0
  211. package/harnesses/openclaw/update/index.toml +3 -0
  212. package/harnesses/openclaw/version/index.toml +3 -0
  213. package/harnesses/openclaw/yolo/index.toml +3 -0
  214. package/harnesses/opencode/download/index.toml +3 -0
  215. package/harnesses/opencode/headless/index.toml +3 -0
  216. package/harnesses/opencode/index.toml +6 -0
  217. package/harnesses/opencode/models/index.toml +3 -0
  218. package/harnesses/opencode/security/index.toml +3 -0
  219. package/harnesses/opencode/stats/index.toml +3 -0
  220. package/harnesses/opencode/ui/index.toml +3 -0
  221. package/harnesses/opencode/update/index.toml +3 -0
  222. package/harnesses/opencode/version/index.toml +3 -0
  223. package/harnesses/opencode/yolo/index.toml +3 -0
  224. package/harnesses/pi/download/index.toml +3 -0
  225. package/harnesses/pi/headless/index.toml +3 -0
  226. package/harnesses/pi/index.toml +6 -0
  227. package/harnesses/pi/models/index.toml +3 -0
  228. package/harnesses/pi/security/index.toml +3 -0
  229. package/harnesses/pi/stats/index.toml +3 -0
  230. package/harnesses/pi/ui/index.toml +3 -0
  231. package/harnesses/pi/update/index.toml +3 -0
  232. package/harnesses/pi/version/index.toml +3 -0
  233. package/harnesses/pi/yolo/index.toml +3 -0
  234. package/harnesses/qwen/download/index.toml +3 -0
  235. package/harnesses/qwen/headless/index.toml +3 -0
  236. package/harnesses/qwen/index.toml +6 -0
  237. package/harnesses/qwen/models/index.toml +3 -0
  238. package/harnesses/qwen/security/index.toml +3 -0
  239. package/harnesses/qwen/stats/index.toml +3 -0
  240. package/harnesses/qwen/ui/index.toml +3 -0
  241. package/harnesses/qwen/update/index.toml +3 -0
  242. package/harnesses/qwen/version/index.toml +3 -0
  243. package/harnesses/qwen/yolo/index.toml +3 -0
  244. package/harnesses/vibe/download/index.toml +3 -0
  245. package/harnesses/vibe/headless/index.toml +3 -0
  246. package/harnesses/vibe/index.toml +6 -0
  247. package/harnesses/vibe/models/index.toml +3 -0
  248. package/harnesses/vibe/security/index.toml +3 -0
  249. package/harnesses/vibe/stats/index.toml +3 -0
  250. package/harnesses/vibe/ui/index.toml +3 -0
  251. package/harnesses/vibe/update/index.toml +3 -0
  252. package/harnesses/vibe/version/index.toml +3 -0
  253. package/harnesses/vibe/yolo/index.toml +3 -0
  254. package/package.json +9 -48
  255. package/config/evals/criteria.toml +0 -73
  256. package/config/evals/evaluations/aider-metrics.toml +0 -83
  257. package/config/evals/evaluations/amp-metrics.toml +0 -80
  258. package/config/evals/evaluations/claude-metrics.toml +0 -83
  259. package/config/evals/evaluations/code-metrics.toml +0 -80
  260. package/config/evals/evaluations/codex-metrics.toml +0 -91
  261. package/config/evals/evaluations/crush-metrics.toml +0 -82
  262. package/config/evals/evaluations/cursor-agent-metrics.toml +0 -80
  263. package/config/evals/evaluations/droid-metrics.toml +0 -80
  264. package/config/evals/evaluations/eca-metrics.toml +0 -80
  265. package/config/evals/evaluations/forge-metrics.toml +0 -80
  266. package/config/evals/evaluations/gemini-metrics.toml +0 -88
  267. package/config/evals/evaluations/goose-metrics.toml +0 -83
  268. package/config/evals/evaluations/jules-metrics.toml +0 -80
  269. package/config/evals/evaluations/kilocode-metrics.toml +0 -80
  270. package/config/evals/evaluations/letta-metrics.toml +0 -80
  271. package/config/evals/evaluations/llxprt-metrics.toml +0 -83
  272. package/config/evals/evaluations/nanocoder-metrics.toml +0 -80
  273. package/config/evals/evaluations/ollama-metrics.toml +0 -80
  274. package/config/evals/evaluations/opencode-metrics.toml +0 -83
  275. package/config/evals/evaluations/pi-metrics.toml +0 -80
  276. package/config/evals/evaluations/qwen-metrics.toml +0 -145
  277. package/config/evals/evaluations/vibe-metrics.toml +0 -80
  278. package/config/evals/x-factor.toml +0 -109
  279. package/config/tools/aider.toml +0 -78
  280. package/config/tools/amp.toml +0 -58
  281. package/config/tools/claude.toml +0 -52
  282. package/config/tools/code.toml +0 -40
  283. package/config/tools/codex.toml +0 -56
  284. package/config/tools/copilot.toml +0 -61
  285. package/config/tools/crush.toml +0 -58
  286. package/config/tools/cursor-agent.toml +0 -42
  287. package/config/tools/droid.toml +0 -46
  288. package/config/tools/eca.toml +0 -45
  289. package/config/tools/forge.toml +0 -44
  290. package/config/tools/gemini.toml +0 -52
  291. package/config/tools/goose.toml +0 -61
  292. package/config/tools/hermes.toml +0 -60
  293. package/config/tools/jules.toml +0 -38
  294. package/config/tools/kilocode.toml +0 -44
  295. package/config/tools/letta.toml +0 -44
  296. package/config/tools/llxprt.toml +0 -52
  297. package/config/tools/nanocoder.toml +0 -38
  298. package/config/tools/ollama.toml +0 -43
  299. package/config/tools/openclaw.toml +0 -44
  300. package/config/tools/opencode.toml +0 -50
  301. package/config/tools/pi.toml +0 -42
  302. package/config/tools/qwen.toml +0 -55
  303. package/config/tools/vibe.toml +0 -47
  304. package/config/user-preferences.toml +0 -41
  305. package/index.d.ts +0 -103
  306. package/scripts/build-binaries.js +0 -4
  307. package/scripts/copy-configs.js +0 -65
  308. package/scripts/postinstall.js +0 -350
package/README.md CHANGED
@@ -1,174 +1,93 @@
1
- <div align="center">
2
-
3
1
  # Terminal Jarvis
4
2
 
5
- **Unified command center for AI coding tools**
6
-
7
- Manage Claude, Gemini, Qwen, and 22 more AI assistants from one terminal interface.
8
-
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
- [![Crates.io](https://img.shields.io/crates/v/terminal-jarvis.svg?logo=rust&style=flat-square)](https://crates.io/crates/terminal-jarvis)
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
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
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)
16
-
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%">
18
-
19
- </div>
20
-
21
- ---
22
-
23
- > **Safe Testing Recommended**: Terminal Jarvis is a harness for AI coding tools that can modify files and execute commands. For the safest experience, we recommend testing in a remote development environment such as [GitHub Codespaces](https://github.com/codespaces), [Coder](https://coder.com/), [DevPod](https://devpod.sh/), or [Google Colab](https://colab.research.google.com/). These environments provide isolation from your local machine while offering full development capabilities.
24
-
25
- ---
3
+ Terminal Jarvis is being simplified into a small Rust CLI that switches between
4
+ coding-agent harnesses through data contracts instead of hard-coded tool logic.
26
5
 
27
- ## Table of Contents
28
-
29
- - [Quick Start](#quick-start)
30
- - [What It Does](#what-it-does)
31
- - [Documentation](#documentation)
32
- - [Project Structure](#project-structure)
33
- - [Development](#development)
34
- - [Contributing](#contributing)
35
- - [License](#license)
36
-
37
-
38
- > *Note: If these links do not respond in the GitHub Mobile app, try viewing in a browser. This is a known platform limitation.*
6
+ The v0.1 line is a breaking minor revision focused on the harness catalog,
7
+ local release checks, and compact distribution surfaces.
39
8
 
40
9
  ## Quick Start
41
10
 
42
11
  ```bash
43
- # Try instantly (no install)
44
- npx terminal-jarvis
45
-
46
- # Or install globally
47
- npm install -g terminal-jarvis # NPM
48
- cargo install terminal-jarvis # Cargo
49
- brew tap ba-calderonmorales/terminal-jarvis && brew install terminal-jarvis # Homebrew
12
+ cargo run -- list
13
+ cargo run -- show codex
14
+ cargo run -- plan codex headless
15
+ cargo run -- use opencode
16
+ cargo run -- current
50
17
  ```
51
18
 
52
- ## What It Does
53
-
54
- | Feature | Description |
55
- |:--------|:------------|
56
- | **Interactive Interface** | Beautiful terminal UI with ASCII art, themed menus, and keyboard navigation for a polished command-line experience. |
57
- | **25 AI Tools Supported** | Claude, Gemini, Qwen, OpenCode, Codex, Aider, Goose, Amp, Crush, LLXPRT, and many more - all manageable from a single interface. |
58
- | **Integrated Installation** | Install, update, or uninstall any supported AI tool directly from the menu without leaving the terminal. |
59
- | **Session Continuity** | Preserves your terminal session state during browser-based authentication flows. Currently in development with expanding coverage. |
60
-
61
- <p align="center">
62
- <img src="https://raw.githubusercontent.com/BA-CalderonMorales/terminal-jarvis/docs/screenshots_and_demos/screenshots_and_demo/Terminal%20Jarvis%20Demo.gif" alt="Demo" width="100%">
63
- </p>
64
-
65
- ## Documentation
66
-
67
- Full guides at **[Terminal Jarvis Docs](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/)**
19
+ Run the verification gate with:
68
20
 
69
- | Guide | Description |
70
- |:------|:------------|
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. |
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. |
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. |
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. |
75
-
76
- ## Project Structure
77
-
78
- <details open>
79
- <summary><strong>Expand/Collapse</strong></summary>
80
-
81
- ```
82
- terminal-jarvis/
83
- ├── src/ # Rust application
84
- │ ├── main.rs # Entry point
85
- │ ├── cli.rs # CLI definitions
86
- │ ├── cli_logic/ # Business logic (19 modules)
87
- │ ├── auth_manager/ # Authentication (8 modules)
88
- │ ├── config/ # Configuration (6 modules)
89
- │ ├── services/ # External integrations (6 modules)
90
- │ ├── tools/ # Tool management (14 modules)
91
- │ ├── theme/ # UI theming (9 modules)
92
- │ └── api/ # API framework (4 modules)
93
-
94
- ├── config/ # Configuration files
95
- │ ├── tools/ # Per-tool configs (*.toml)
96
- │ ├── evals/ # Evaluation metrics
97
- │ └── *.toml # Global settings
98
-
99
- ├── scripts/ # Automation
100
- │ ├── cicd/ # CI/CD (local-ci.sh, local-cd.sh)
101
- │ └── verify/ # Verification feedback loop
102
-
103
- ├── .github/ # GitHub integrations
104
- │ └── skills/ # AI agent skills (17 modules)
105
- │ ├── verification/ # Quality verification
106
- │ ├── release-checklist/ # Pre-release automation
107
- │ ├── qa-testing/ # Minimal QA branch testing
108
- │ ├── deployment/ # Release workflows
109
- │ └── ... # 13 more skills
110
-
111
- ├── tests/ # Rust tests (cargo test)
112
- ├── e2e/ # E2E tests (TypeScript/Vitest)
113
- ├── npm/terminal-jarvis/ # NPM wrapper
114
- └── homebrew/ # Homebrew Formula
21
+ ```bash
22
+ scripts/verify.sh
115
23
  ```
116
24
 
117
- </details>
25
+ Run the stronger local gate with security and package checks:
118
26
 
119
- ## Development
27
+ ```bash
28
+ scripts/local-ci.sh
29
+ ```
120
30
 
121
- ### Remote Development Environments (Recommended)
31
+ Exercise the local release asset shape without tagging or publishing:
122
32
 
123
- For the safest and most consistent development experience, use a cloud-based environment:
33
+ ```bash
34
+ scripts/local-cd.sh --check-auth
35
+ ```
124
36
 
125
- | Environment | Description |
126
- |:------------|:------------|
127
- | [GitHub Codespaces](https://github.com/codespaces/new?template_repository=BA-CalderonMorales/terminal-jarvis) | Zero-setup cloud development with VS Code integration. Pre-configured with all dependencies. |
128
- | [Coder](https://coder.com/) | Self-hosted or cloud workspaces with full IDE support. Great for teams with custom infrastructure. |
129
- | [DevPod](https://devpod.sh/) | Open-source, client-only solution that works with any cloud provider or local Docker. |
130
- | [Google Colab](https://colab.research.google.com/) | Free cloud notebooks with terminal access. Useful for quick experimentation. |
37
+ ## Development Environment
131
38
 
132
- ### Local Development
39
+ Prefer a remote or disposable Linux workspace for Terminal Jarvis development:
40
+ Codespaces, a short-lived VM/container, or an SSH development host. Coding-agent
41
+ harnesses install binaries, inspect repositories, and can run delegated commands,
42
+ so avoid testing new harness plans directly on a daily-driver machine.
133
43
 
134
- **Prerequisites**: Node.js 20+, Rust toolchain (for source builds)
44
+ Keep provider tokens scoped to the work, mount only the repositories being
45
+ tested, and treat `headless`, `install`, `update`, and `yolo` capability plans as
46
+ commands to review before execution.
135
47
 
136
- ### Verification
48
+ ## New Layout
137
49
 
138
- ```bash
139
- # Run before commits - comprehensive quality check
140
- ./scripts/verify/verify-change.sh
141
-
142
- # Individual checks for faster iteration
143
- ./scripts/verify/verify-build.sh # Compilation only
144
- ./scripts/verify/verify-quality.sh # Clippy + formatting
145
- ./scripts/verify/verify-tests.sh # Unit + integration tests
146
- ./scripts/verify/verify-cli.sh # CLI smoke tests
50
+ ```text
51
+ terminal-jarvis/
52
+ ├── docs/ # redesign notes and migration guidance
53
+ ├── harnesses/ # data contracts for coding-agent harness capabilities
54
+ ├── src/ # slim Rust CLI
55
+ └── tests/ # behavior and contract tests
147
56
  ```
148
57
 
149
- ### Testing
58
+ The initial catalog promotes 25 coding-agent harnesses into a shared descriptor
59
+ shape. Each harness owns the same capability folders:
150
60
 
151
- ```bash
152
- cargo test # Rust unit and integration tests
153
- cd e2e && npm test # End-to-end tests with Vitest
61
+ ```text
62
+ harnesses/<harness>/{download,update,headless,version,stats,models,security,yolo,ui}/index.toml
154
63
  ```
155
64
 
156
- ## Contributing
157
-
158
- See [AGENTS.md](AGENTS.md) for AI-assisted development guidelines and the [Contribution Guide](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/details/contributions/).
159
-
160
- ## License
65
+ The CLI loads those files, validates that every harness exposes the full
66
+ capability contract, prints setup guidance, stores the active harness, and can
67
+ run a selected capability command when the user asks for it.
161
68
 
162
- MIT - see [LICENSE](LICENSE)
69
+ Auth setup is tracked at the harness level. A harness can require no key, one of
70
+ several provider keys, or all listed keys. That keeps setup guidance accurate
71
+ without forcing users to configure every provider a tool supports.
163
72
 
164
- ---
73
+ ## Design Goals
165
74
 
166
- <div align="center">
75
+ - Keep Rust source files at 100 lines or fewer.
76
+ - Keep dependencies at zero until a dependency proves its value.
77
+ - Keep user context local and explicit.
78
+ - Prefer harness data over Rust conditionals.
79
+ - Keep the v0.1 root easy to inspect while this minor revision breaks old
80
+ interfaces deliberately.
81
+ - Aim for 90 percent or better line coverage and mutation score as the CLI
82
+ stabilizes.
167
83
 
168
- **[Documentation](https://ba-calderonmorales.github.io/my-life-as-a-dev/latest/projects/active/terminal-jarvis/)** |
169
- **[Issues](https://github.com/BA-CalderonMorales/terminal-jarvis/issues)** |
170
- **[Changelog](CHANGELOG.md)**
84
+ ## Release Path
171
85
 
172
- [![Buy Me a Coffee](https://img.shields.io/badge/Support-Buy%20Me%20a%20Coffee-orange.svg?style=flat-square)](https://www.buymeacoffee.com/brandoncalderonmorales)
86
+ Cargo is the active development surface. Minimal npm and Homebrew source-build
87
+ surfaces are included for smoke testing, while `scripts/package-release.sh`
88
+ builds versioned archives, checksums, npm staging files, and generated Homebrew
89
+ formula output. Tagged releases use `.github/workflows/cd-multiplatform.yml` to
90
+ publish the crate, GitHub release assets, Homebrew tap update, and npm package.
173
91
 
174
- </div>
92
+ See [docs/release-plan.md](docs/release-plan.md) for the v0.1 release checklist and
93
+ auth boundaries.
@@ -1,33 +1,32 @@
1
- #!/usr/bin/env bash
2
- # Terminal Jarvis POSIX launcher
3
- # This script ensures the binary is available and executable
1
+ #!/usr/bin/env node
2
+ const { existsSync } = require("node:fs");
3
+ const { dirname, resolve } = require("node:path");
4
+ const { spawnSync } = require("node:child_process");
4
5
 
5
- set -euo pipefail
6
+ const args = process.argv.slice(2);
7
+ const here = dirname(__filename);
8
+ const repo = resolve(here, "../../..");
9
+ const candidates = [
10
+ process.env.TERMINAL_JARVIS_BIN,
11
+ resolve(here, "terminal-jarvis-bin"),
12
+ resolve(repo, "target/release/terminal-jarvis"),
13
+ resolve(repo, "target/debug/terminal-jarvis"),
14
+ ].filter(Boolean);
6
15
 
7
- # Resolve the real path of this script, following symlinks
8
- # This is important because npx creates symlinks in node_modules/.bin
9
- SCRIPT_PATH="${BASH_SOURCE[0]}"
10
- while [ -L "$SCRIPT_PATH" ]; do
11
- SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
12
- SCRIPT_PATH="$(readlink "$SCRIPT_PATH")"
13
- [[ $SCRIPT_PATH != /* ]] && SCRIPT_PATH="$SCRIPT_DIR/$SCRIPT_PATH"
14
- done
15
- SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
16
+ for (const binary of candidates) {
17
+ if (existsSync(binary)) {
18
+ const result = spawnSync(binary, args, { stdio: "inherit" });
19
+ process.exit(result.status ?? 1);
20
+ }
21
+ }
16
22
 
17
- BIN_PATH="$SCRIPT_DIR/terminal-jarvis-bin"
23
+ if (existsSync(resolve(repo, "Cargo.toml"))) {
24
+ const result = spawnSync("cargo", ["run", "--quiet", "--", ...args], {
25
+ cwd: repo,
26
+ stdio: "inherit",
27
+ });
28
+ process.exit(result.status ?? 1);
29
+ }
18
30
 
19
- # If binary is missing, try to run postinstall
20
- if [ ! -x "$BIN_PATH" ]; then
21
- echo "[terminal-jarvis] Binary not found. Running postinstall..." >&2
22
- node "$SCRIPT_DIR/../scripts/postinstall.js" || true
23
- fi
24
-
25
- # Verify binary exists
26
- if [ ! -x "$BIN_PATH" ]; then
27
- echo "[terminal-jarvis] Error: Binary is missing or not executable." >&2
28
- echo "[terminal-jarvis] Try reinstalling: npm install terminal-jarvis" >&2
29
- exit 1
30
- fi
31
-
32
- # Execute the binary
33
- exec "$BIN_PATH" "$@"
31
+ console.error("terminal-jarvis binary is missing; reinstall or set TERMINAL_JARVIS_BIN");
32
+ process.exit(1);
Binary file
@@ -0,0 +1,3 @@
1
+ summary = "Install Aider from its documented distribution channel."
2
+ command = "uv"
3
+ args = ["tool", "install", "--force", "--python", "python3.12", "--with", "pip", "aider-chat@latest"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Aider headless invocation options."
2
+ command = "aider"
3
+ args = ["--help"]
@@ -0,0 +1,6 @@
1
+ name = "aider"
2
+ display = "Aider"
3
+ description = "AI pair programming assistant that edits code in your local git repository"
4
+ binary = "aider"
5
+ env_mode = "any"
6
+ env = ["OPENROUTER_API_KEY", "OPENAI_API_KEY", "ANTHROPIC_API_KEY", "GEMINI_API_KEY", "AZURE_API_KEY"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Aider model selection command surface."
2
+ command = "aider"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Aider security and auth command surface."
2
+ command = "aider"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Aider local status and usage command surface."
2
+ command = "aider"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Open the interactive Aider interface."
2
+ command = "aider"
3
+ args = []
@@ -0,0 +1,3 @@
1
+ summary = "Update Aider without interactive setup flows."
2
+ command = "uv"
3
+ args = ["tool", "upgrade", "aider-chat"]
@@ -0,0 +1,3 @@
1
+ summary = "Print or verify the installed Aider version."
2
+ command = "sh"
3
+ args = ["-c", "aider --version"]
@@ -0,0 +1,3 @@
1
+ summary = "Dangerous mode is not normalized for Aider yet."
2
+ command = "sh"
3
+ args = ["-c", "echo danger yolo mode is not configured for aider; exit 1"]
@@ -0,0 +1,3 @@
1
+ summary = "Install Amp from its documented distribution channel."
2
+ command = "npm"
3
+ args = ["install", "-g", "@sourcegraph/amp"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Amp headless invocation options."
2
+ command = "amp"
3
+ args = ["--help"]
@@ -0,0 +1,6 @@
1
+ name = "amp"
2
+ display = "Amp"
3
+ description = "Sourcegraph's AI-powered code assistant with advanced context awareness"
4
+ binary = "amp"
5
+ env_mode = "any"
6
+ env = ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "AMP_API_KEY"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Amp model selection command surface."
2
+ command = "amp"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Amp security and auth command surface."
2
+ command = "amp"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Amp local status and usage command surface."
2
+ command = "amp"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Open the interactive Amp interface."
2
+ command = "amp"
3
+ args = []
@@ -0,0 +1,3 @@
1
+ summary = "Update Amp without interactive setup flows."
2
+ command = "npm"
3
+ args = ["update", "-g", "@sourcegraph/amp"]
@@ -0,0 +1,3 @@
1
+ summary = "Print or verify the installed Amp version."
2
+ command = "sh"
3
+ args = ["-c", "amp --version"]
@@ -0,0 +1,3 @@
1
+ summary = "Dangerous mode is not normalized for Amp yet."
2
+ command = "sh"
3
+ args = ["-c", "echo danger yolo mode is not configured for amp; exit 1"]
@@ -0,0 +1,3 @@
1
+ summary = "Install Claude from its documented distribution channel."
2
+ command = "sh"
3
+ args = ["-c", "curl -fsSL https://claude.ai/install.sh | bash"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Claude headless invocation options."
2
+ command = "claude"
3
+ args = ["--help"]
@@ -0,0 +1,6 @@
1
+ name = "claude"
2
+ display = "Claude"
3
+ description = "Anthropic's Claude for code assistance"
4
+ binary = "claude"
5
+ env_mode = "any"
6
+ env = ["ANTHROPIC_API_KEY", "CLAUDE_API_KEY"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Claude model selection command surface."
2
+ command = "claude"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Claude security and auth command surface."
2
+ command = "claude"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Claude local status and usage command surface."
2
+ command = "claude"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Open the interactive Claude interface."
2
+ command = "claude"
3
+ args = []
@@ -0,0 +1,3 @@
1
+ summary = "Update Claude without interactive setup flows."
2
+ command = "claude"
3
+ args = ["update"]
@@ -0,0 +1,3 @@
1
+ summary = "Print or verify the installed Claude version."
2
+ command = "sh"
3
+ args = ["-c", "claude --version"]
@@ -0,0 +1,3 @@
1
+ summary = "Dangerous mode is not normalized for Claude yet."
2
+ command = "sh"
3
+ args = ["-c", "echo danger yolo mode is not configured for claude; exit 1"]
@@ -0,0 +1,3 @@
1
+ summary = "Install Code from its documented distribution channel."
2
+ command = "npm"
3
+ args = ["install", "-g", "@just-every/code"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Code headless invocation options."
2
+ command = "coder"
3
+ args = ["--help"]
@@ -0,0 +1,6 @@
1
+ name = "code"
2
+ display = "Code"
3
+ description = "Fork of Codex AI - multi-provider coding agent"
4
+ binary = "coder"
5
+ env_mode = "any"
6
+ env = ["OPENAI_API_KEY"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Code model selection command surface."
2
+ command = "coder"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Code security and auth command surface."
2
+ command = "coder"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Code local status and usage command surface."
2
+ command = "coder"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Open the interactive Code interface."
2
+ command = "coder"
3
+ args = []
@@ -0,0 +1,3 @@
1
+ summary = "Update Code without interactive setup flows."
2
+ command = "npm"
3
+ args = ["update", "-g", "@just-every/code"]
@@ -0,0 +1,3 @@
1
+ summary = "Print or verify the installed Code version."
2
+ command = "sh"
3
+ args = ["-c", "coder --version"]
@@ -0,0 +1,3 @@
1
+ summary = "Dangerous mode is not normalized for Code yet."
2
+ command = "sh"
3
+ args = ["-c", "echo danger yolo mode is not configured for code; exit 1"]
@@ -0,0 +1,3 @@
1
+ summary = "Install Codex with npm without sudo."
2
+ command = "npm"
3
+ args = ["install", "-g", "@openai/codex"]
@@ -0,0 +1,3 @@
1
+ summary = "Run Codex in a headless command mode when the CLI supports it."
2
+ command = "codex"
3
+ args = ["exec"]
@@ -0,0 +1,6 @@
1
+ name = "codex"
2
+ display = "OpenAI Codex"
3
+ description = "OpenAI coding agent CLI"
4
+ binary = "codex"
5
+ env_mode = "any"
6
+ env = ["OPENAI_API_KEY", "CODEX_API_KEY"]
@@ -0,0 +1,3 @@
1
+ summary = "Show local Codex help until model listing is normalized."
2
+ command = "codex"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Codex sandbox and approval settings before running."
2
+ command = "codex"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Show local Codex help until a stable stats command is defined."
2
+ command = "codex"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Open the interactive Codex terminal UI."
2
+ command = "codex"
3
+ args = []
@@ -0,0 +1,3 @@
1
+ summary = "Update the npm-installed Codex package without interactive auth."
2
+ command = "npm"
3
+ args = ["update", "-g", "@openai/codex"]
@@ -0,0 +1,3 @@
1
+ summary = "Print the installed Codex version."
2
+ command = "codex"
3
+ args = ["--version"]
@@ -0,0 +1,3 @@
1
+ summary = "Dangerous mode: bypass Codex approvals and sandboxing."
2
+ command = "codex"
3
+ args = ["--dangerously-bypass-approvals-and-sandbox"]
@@ -0,0 +1,3 @@
1
+ summary = "Install Copilot from its documented distribution channel."
2
+ command = "npm"
3
+ args = ["install", "-g", "@github/copilot"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Copilot headless invocation options."
2
+ command = "copilot"
3
+ args = ["--help"]
@@ -0,0 +1,6 @@
1
+ name = "copilot"
2
+ display = "Copilot"
3
+ description = "GitHub Copilot CLI - AI pair programming directly in your terminal"
4
+ binary = "copilot"
5
+ env_mode = "any"
6
+ env = ["GITHUB_TOKEN", "GH_TOKEN"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Copilot model selection command surface."
2
+ command = "copilot"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Copilot security and auth command surface."
2
+ command = "copilot"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Review Copilot local status and usage command surface."
2
+ command = "copilot"
3
+ args = ["--help"]
@@ -0,0 +1,3 @@
1
+ summary = "Open the interactive Copilot interface."
2
+ command = "copilot"
3
+ args = []
@@ -0,0 +1,3 @@
1
+ summary = "Update Copilot without interactive setup flows."
2
+ command = "npm"
3
+ args = ["update", "-g", "@github/copilot"]