@termiq/cli 3.6.0 → 3.7.0
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 +57 -22
- package/package.json +20 -2
package/README.md
CHANGED
|
@@ -1,57 +1,92 @@
|
|
|
1
1
|
# @termiq/cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Run Claude Code, Gemini CLI, Cursor, or any shell over SSH or in CI — then walk away.** TermIQ streams the session to your phone at [termiq.io](https://termiq.io), pushes you the moment it finishes or stops to ask, and lets you answer `Y/n` right from the notification. Your machine does the work; your phone keeps you in control.
|
|
4
|
+
|
|
5
|
+
End-to-end encrypted — the TermIQ server is a blind relay that streams your output, never stores it.
|
|
6
|
+
|
|
7
|
+
## Why the CLI
|
|
8
|
+
|
|
9
|
+
The headless half of a long-running task is exactly where you can't sit and watch — a remote box over SSH, a CI runner, an unattended host. Start the work, leave, and let TermIQ tell you when it needs you:
|
|
10
|
+
|
|
11
|
+
- **Push the moment it matters** — get notified when a task **completes**, is **waiting** for a confirmation, or hits an **error**, even with your phone in your pocket.
|
|
12
|
+
- **Answer from the notification** — approve a `Y/n` prompt without opening anything; the answer goes straight to the terminal.
|
|
13
|
+
- **Reliable input** — what you type from your phone reaches the terminal in order, even on a flaky mobile connection.
|
|
14
|
+
- **Real-time sync** — output streams to your phone with sub-second latency and reconnects on its own when the network changes.
|
|
15
|
+
- **End-to-end encryption** — terminal content is encrypted on your devices (XSalsa20-Poly1305); the server relays encrypted bytes it can't read. Streamed, never stored.
|
|
16
|
+
|
|
17
|
+
Works with Claude Code, Gemini CLI, Cursor, and any other terminal program — TermIQ mirrors whatever runs in the shell, so there's nothing AI-specific to configure.
|
|
4
18
|
|
|
5
19
|
## Install
|
|
6
20
|
|
|
21
|
+
Requires **Node.js 18+** and a free TermIQ account.
|
|
22
|
+
|
|
7
23
|
```bash
|
|
8
24
|
npm i -g @termiq/cli
|
|
9
25
|
```
|
|
10
26
|
|
|
27
|
+
The installed binary is **`termiq`**.
|
|
28
|
+
|
|
11
29
|
## Usage
|
|
12
30
|
|
|
13
31
|
```bash
|
|
14
|
-
termiq # Start: spawn shell + connect to termiq.io
|
|
15
|
-
termiq login # Authenticate via browser
|
|
16
|
-
termiq login --token KEY # Authenticate with API key
|
|
17
|
-
termiq logout # Clear credentials
|
|
18
|
-
termiq status # Show
|
|
19
|
-
termiq --help #
|
|
32
|
+
termiq # Start: spawn a shell + connect to termiq.io
|
|
33
|
+
termiq login # Authenticate via browser (Device Code Flow)
|
|
34
|
+
termiq login --token KEY # Authenticate with an API key
|
|
35
|
+
termiq logout # Clear stored credentials
|
|
36
|
+
termiq status # Show current authentication state
|
|
37
|
+
termiq --help # Show help
|
|
20
38
|
```
|
|
21
39
|
|
|
22
|
-
|
|
40
|
+
`termiq` spawns a new shell in your current terminal and connects it to termiq.io. Open termiq.io on your phone to watch and drive the session live. End the shell with `exit` or `Ctrl+D` to disconnect. (Running `termiq` inside an existing session is blocked so you don't nest by accident — pass `--force` to override.)
|
|
23
41
|
|
|
24
|
-
|
|
25
|
-
2. Everything is streamed to [termiq.io](https://termiq.io) in real-time
|
|
26
|
-
3. Open termiq.io on your phone to monitor and control the terminal
|
|
27
|
-
4. `exit` or `Ctrl+D` to disconnect
|
|
42
|
+
## Headless / CI / SSH
|
|
28
43
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
For headless/CI environments, create an API key at [termiq.io/settings/api-keys](https://termiq.io/settings/api-keys):
|
|
44
|
+
For unattended hosts and pipelines, authenticate with an API key. Create one at [termiq.io/settings/api-keys](https://termiq.io/settings/api-keys) (keys are prefixed `tiq_`), then either log in with it:
|
|
32
45
|
|
|
33
46
|
```bash
|
|
34
47
|
termiq login --token tiq_your_api_key
|
|
35
48
|
```
|
|
36
49
|
|
|
37
|
-
|
|
50
|
+
…or provide it through the environment — equivalent to `--token`, and convenient for CI:
|
|
38
51
|
|
|
39
52
|
```bash
|
|
40
53
|
export TERMIQ_TOKEN=tiq_your_api_key
|
|
41
54
|
termiq
|
|
42
55
|
```
|
|
43
56
|
|
|
57
|
+
Check the connection with `termiq status`; sign out with `termiq logout`.
|
|
58
|
+
|
|
59
|
+
## Flags
|
|
60
|
+
|
|
61
|
+
| Flag | Description |
|
|
62
|
+
|-------------------|---------------------------------------------------------------------|
|
|
63
|
+
| `--server URL` | Override the server URL (default: `https://termiq.io`) |
|
|
64
|
+
| `--token KEY` | API key for headless login |
|
|
65
|
+
| `--watch`, `-w` | Enable the file watcher (off by default; respects `.gitignore`) |
|
|
66
|
+
| `--statusline` | Show a tmux-style status bar in the local terminal (off by default) |
|
|
67
|
+
| `--verbose`, `-v` | Verbose logging to stderr |
|
|
68
|
+
| `--log-level L` | Log verbosity: `silent` \| `error` \| `warn` \| `info` \| `debug` |
|
|
69
|
+
| `--log-to-file` | Write logs to `~/.termiq/logs/cli.log` |
|
|
70
|
+
| `--force` | Start even when already inside a TermIQ session (nested run) |
|
|
71
|
+
| `--version`, `-V` | Print version and exit |
|
|
72
|
+
|
|
73
|
+
## On your phone
|
|
74
|
+
|
|
75
|
+
Open termiq.io in your mobile browser, sign in with the same account, and add it to your home screen to install the PWA and enable push (iOS 16.4+ / Android). Set **Quiet Hours** to silence notifications overnight. With `--watch` on, the app also shows which files your session touched (respecting `.gitignore`), so you can follow along without opening an editor.
|
|
76
|
+
|
|
44
77
|
## Configuration
|
|
45
78
|
|
|
46
|
-
|
|
79
|
+
Configuration and credentials live in `~/.termiq/`:
|
|
80
|
+
|
|
81
|
+
- `config.json` — server URL and agent name
|
|
82
|
+
- `credentials` — authentication tokens (stored with `chmod 0600`)
|
|
83
|
+
- `logs/cli.log` — log file (written when `--log-to-file` is set)
|
|
47
84
|
|
|
48
|
-
- `config.json
|
|
49
|
-
- `credentials` — authentication tokens (chmod 0600)
|
|
85
|
+
Command-line flags override values from `config.json`.
|
|
50
86
|
|
|
51
|
-
##
|
|
87
|
+
## Plan
|
|
52
88
|
|
|
53
|
-
|
|
54
|
-
- A TermIQ account ([termiq.io](https://termiq.io))
|
|
89
|
+
**Free forever** — 1 agent and 2 terminals, no credit card required.
|
|
55
90
|
|
|
56
91
|
## Links
|
|
57
92
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@termiq/cli",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.7.0",
|
|
4
|
+
"description": "Run Claude Code, Gemini CLI, or any shell over SSH/CI and control it from your phone — push on done/waiting/error, answer Y/n from the notification. End-to-end encrypted.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"terminal",
|
|
7
|
+
"remote",
|
|
8
|
+
"ssh",
|
|
9
|
+
"ci",
|
|
10
|
+
"headless",
|
|
11
|
+
"mobile",
|
|
12
|
+
"phone",
|
|
13
|
+
"claude",
|
|
14
|
+
"claude code",
|
|
15
|
+
"gemini",
|
|
16
|
+
"gemini cli",
|
|
17
|
+
"cursor",
|
|
18
|
+
"ai",
|
|
19
|
+
"push-notifications",
|
|
20
|
+
"pwa",
|
|
21
|
+
"sync"
|
|
22
|
+
],
|
|
5
23
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
24
|
"homepage": "https://termiq.io",
|
|
7
25
|
"bugs": {
|