drive-jarvis-clilisted
Install: claude install-skill PersonalJarvis/PersonalJarvis
# Drive Jarvis from the CLI
Jarvis exposes its entire WebUI action surface as a command-line tool, the same
way `gcloud` / `aws` exposes a cloud platform. You drive a **running** Jarvis over
HTTP — no need to be inside the app.
## Setup (one time)
The CLI ships with the package, so after `pip install -e .` the `jarvis` binary is
on PATH (aliases: `jarvisctl`, `jctl`). Check it:
```bash
jarvis version
```
**Auth is zero-config on the same machine as a running Jarvis.** The desktop app
writes its live port + control token to a single-instance session file; the CLI
discovers it automatically, and falls back to the machine's control key. You do
not need to log in. Confirm reachability:
```bash
jarvis system status # {"reachable": true} when Jarvis is running
```
For a **remote** Jarvis (e.g. a VPS), tunnel it to loopback and point the CLI at it:
```bash
ssh -L 47821:127.0.0.1:47821 <host> # then it behaves like local
# or, explicitly, per call:
jarvis --url http://127.0.0.1:47821 --key "$JCTL" missions list
```
## How to use it (agent ergonomics)
- **Discover commands**: `jarvis --help`, `jarvis <group> --help`. Every mounted
REST endpoint is also reachable generically via `jarvis api <tag> <op> --help`.
- **Machine-readable output**: put `--json` *before* the group, e.g.
`jarvis --json missions list`. Parse that, not the human table.
- **Preview before acting**: `--dry-run` on any command prints the exact request
(method, path, body, whether auth