@bramblex/codex-workbench 0.1.13 → 0.1.14

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 (2) hide show
  1. package/README.md +54 -101
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # codex-workbench
2
2
 
3
- > Terminal workbench for browsing, organizing, and resuming [Codex](https://github.com/openai/codex) sessions — locally and across SSH remotes.
3
+ > A keyboard-driven terminal UI for browsing, organizing, and resuming [Codex](https://github.com/openai/codex) sessions — locally and across SSH remotes.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@bramblex/codex-workbench)](https://www.npmjs.com/package/@bramblex/codex-workbench)
6
6
  [![license](https://img.shields.io/npm/l/@bramblex/codex-workbench)](LICENSE)
@@ -8,25 +8,17 @@
8
8
 
9
9
  ---
10
10
 
11
- ## What is it?
12
-
13
- codex-workbench gives you a fast, keyboard-driven terminal UI over your Codex sessions. It reads session JSONL files from the Codex sessions directory and lets you **inspect, rename, annotate, fork, archive, hide, and delete** sessions without digging through `~/.codex/sessions/` by hand.
11
+ ![Screenshot of codex-workbench interactive TUI showing local, staging, and production sessions](assets/screenshot.png)
14
12
 
15
- It also aggregates sessions from **remote machines over SSH** — so you can manage Codex sessions across all your servers from one terminal.
13
+ ---
16
14
 
17
- Run it without arguments to open the interactive TUI, or use the CLI subcommands for scripting and automation.
15
+ ## What is it?
18
16
 
19
- ---
17
+ codex-workbench is an **interactive terminal UI** for your Codex sessions. Instead of digging through `~/.codex/sessions/` by hand, you get a fast, keyboard-driven interface to **browse, search, rename, annotate, fork, archive, and delete** sessions — all without leaving the terminal.
20
18
 
21
- ## Features
19
+ It also connects to **remote machines over SSH**, so you can manage Codex sessions across all your servers from a single pane of glass.
22
20
 
23
- - **Interactive TUI** three-pane layout: sources/projects sessions details
24
- - **Remote SSH sources** — browse and manage sessions on distant machines with zero remote dependencies beyond `codex-workbench` itself
25
- - **Session metadata** — assign custom names and notes, hide stale sessions without deleting them
26
- - **One-key actions** — resume, fork, archive, or delete sessions from the keyboard
27
- - **Directory picker** — navigate the filesystem to start new sessions in any project
28
- - **JSON output** — pipe `list --json` into `jq` or other tools
29
- - **Short aliases** — installed as both `codex-workbench` and `cwb`
21
+ A handful of CLI subcommands are available for scripting, but the TUI is the product.
30
22
 
31
23
  ---
32
24
 
@@ -36,93 +28,22 @@ Run it without arguments to open the interactive TUI, or use the CLI subcommands
36
28
  npm install -g @bramblex/codex-workbench
37
29
  ```
38
30
 
39
- Make sure Codex is available in your shell `PATH`. Verify everything is wired up:
31
+ Verify Codex is reachable, then open the workbench:
40
32
 
41
33
  ```bash
42
34
  codex-workbench doctor
43
- ```
44
-
45
- Then open the workbench:
46
-
47
- ```bash
48
- codex-workbench
49
- # or just:
50
35
  cwb
51
36
  ```
52
37
 
53
- ---
54
-
55
- ## CLI commands
56
-
57
- ### Browse sessions
58
-
59
- ```bash
60
- codex-workbench list # human-readable, grouped by source + project
61
- codex-workbench list --json # machine-readable full output
62
- codex-workbench list --json --compact # omit message history (faster for scripting)
63
- codex-workbench list --cwd ~/projects/foo # filter to one working directory
64
- codex-workbench list --all # include archived and hidden sessions
65
- ```
66
-
67
- ### Inspect a session
68
-
69
- ```bash
70
- codex-workbench show <session>
71
- ```
72
-
73
- `<session>` can be a full session id, a unique prefix, a saved custom name, or a session filename.
74
-
75
- ### Manage sessions
76
-
77
- ```bash
78
- codex-workbench rename <session> "fix the auth bug"
79
- codex-workbench note <session> "investigated JWT expiry, seems to be clock skew"
80
- codex-workbench archive <session>
81
- codex-workbench unarchive <session>
82
- codex-workbench hide <session> # remove from default list but keep on disk
83
- codex-workbench unhide <session>
84
- codex-workbench fork <session>
85
- codex-workbench delete <session> --force
86
- ```
87
-
88
- ### Start and resume
89
-
90
- ```bash
91
- codex-workbench new --cwd ~/projects/foo "Summarize this repo"
92
- codex-workbench resume <session> "what was the conclusion about the rate limiter?"
93
- ```
94
-
95
- When you run `new` or `resume`, Codex takes over the terminal. When it exits, codex-workbench returns.
96
-
97
- ### Directories
98
-
99
- ```bash
100
- codex-workbench dirs --cwd ~/projects
101
- codex-workbench dirs --json
102
- codex-workbench mkdir ~/projects my-new-feature
103
- ```
104
-
105
- ### Diagnostics
106
-
107
- ```bash
108
- codex-workbench doctor
109
- ```
110
-
111
- ### Force-delete a broken session file
112
-
113
- ```bash
114
- codex-workbench delete <session> --file
115
- ```
116
-
117
- Only use `--file` when Codex itself cannot remove the session. It deletes the JSONL file directly without going through the Codex CLI.
38
+ That's it. `cwb` with no arguments opens the TUI.
118
39
 
119
40
  ---
120
41
 
121
42
  ## Interactive TUI
122
43
 
123
- Run `cwb` with no arguments to open the TUI:
44
+ The TUI has three panes: **sources & projects** on the left, **sessions** on the upper right, and **session details** below. Local sessions load instantly; remote SSH sources stream in asynchronously.
124
45
 
125
- ![Screenshot of codex-workbench interactive TUI showing local, staging, and production sessions](assets/screenshot.png)
46
+ When you resume or start a session, Codex takes over the terminal. When it exits, the workbench redraws.
126
47
 
127
48
  ### Keyboard shortcuts
128
49
 
@@ -135,7 +56,7 @@ Run `cwb` with no arguments to open the TUI:
135
56
  | `0` | Show all sources |
136
57
  | `1`–`9` | Jump to source |
137
58
  | `[` `]` | Previous / next source |
138
- | `n` | New session (picks directory from active project) |
59
+ | `n` | New session (opens directory picker) |
139
60
  | `f` | Fork selected session |
140
61
  | `r` | Rename selected session |
141
62
  | `o` | Add or edit note |
@@ -146,8 +67,6 @@ Run `cwb` with no arguments to open the TUI:
146
67
 
147
68
  ### Directory picker
148
69
 
149
- When creating a new session, the directory picker opens:
150
-
151
70
  | Key | Action |
152
71
  |-----|--------|
153
72
  | `↑` `↓` / `j` `k` | Move selection |
@@ -161,11 +80,11 @@ When creating a new session, the directory picker opens:
161
80
 
162
81
  ## Remote SSH sources
163
82
 
164
- codex-workbench can show sessions from remote machines by running `cwb` over SSH.
83
+ codex-workbench can show sessions from remote machines by running `cwb` over SSH. Remote sources appear alongside `Local` in the TUI and load asynchronously.
165
84
 
166
85
  ### Requirements
167
86
 
168
- The remote machine must have `codex-workbench` installed and the `cwb` command available in the **non-interactive SSH PATH** (not just your interactive shell). Test it:
87
+ The remote must have `codex-workbench` installed and `cwb` available in the **non-interactive SSH PATH**. Test it:
169
88
 
170
89
  ```bash
171
90
  ssh user@host 'cwb list --json'
@@ -180,12 +99,12 @@ Create `~/.codex/codex-workbench.config.json`:
180
99
  "servers": [
181
100
  {
182
101
  "id": "devbox",
183
- "label": "Dev box",
102
+ "label": "SSH · Dev Box",
184
103
  "target": "user@dev.example.com"
185
104
  },
186
105
  {
187
106
  "id": "gpu",
188
- "label": "GPU server",
107
+ "label": "SSH · GPU Server",
189
108
  "target": "gpu-host",
190
109
  "command": "/usr/local/bin/cwb",
191
110
  "sshArgs": ["-p", "2222"]
@@ -197,12 +116,48 @@ Create `~/.codex/codex-workbench.config.json`:
197
116
  | Field | Required | Description |
198
117
  |-------|----------|-------------|
199
118
  | `target` | Yes | SSH destination (`user@host` or hostname) |
119
+ | `label` | No | Display name in the TUI |
200
120
  | `id` | No | Short identifier (defaults to sanitized target) |
201
- | `label` | No | Display name in the UI |
202
121
  | `command` | No | Path to `cwb` on the remote (default: `cwb`) |
203
122
  | `sshArgs` | No | Extra SSH flags, e.g. `["-p", "2222"]` |
204
123
 
205
- Remote sources appear alongside `Local` in the TUI and load asynchronously in the background. Most operations (rename, note, hide, new, resume, fork, archive, delete) are forwarded to the remote `cwb`.
124
+ Operations like rename, note, hide, new, resume, fork, archive, and delete are forwarded to the remote `cwb` transparently.
125
+
126
+ ---
127
+
128
+ ## CLI commands
129
+
130
+ The TUI is the primary interface, but every action is also available as a CLI subcommand for scripting and automation.
131
+
132
+ ```bash
133
+ cwb list # human-readable, grouped by source + project
134
+ cwb list --json --compact # machine-readable, omits message history
135
+ cwb list --cwd ~/projects/foo # filter to one working directory
136
+ cwb list --all # include archived and hidden sessions
137
+
138
+ cwb show <session> # full session details
139
+ cwb rename <session> "fix auth" # give a session a memorable name
140
+ cwb note <session> "clock skew" # attach a persistent note
141
+ cwb archive <session> # archive without deleting
142
+ cwb unarchive <session>
143
+ cwb hide <session> # remove from default list, keep on disk
144
+ cwb unhide <session>
145
+ cwb fork <session>
146
+ cwb delete <session> --force
147
+
148
+ cwb new --cwd ~/projects/foo "Summarize this repo"
149
+ cwb resume <session> "what was the conclusion about the rate limiter?"
150
+
151
+ cwb dirs --cwd ~/projects
152
+ cwb mkdir ~/projects my-new-feature
153
+
154
+ cwb doctor # check Codex binary discovery
155
+ cwb delete <session> --file # force-delete broken session file
156
+ ```
157
+
158
+ `<session>` can be a full session id, a unique prefix, a saved custom name, or a session filename.
159
+
160
+ When you run `new` or `resume`, Codex takes over the terminal. When it exits, codex-workbench returns.
206
161
 
207
162
  ---
208
163
 
@@ -314,8 +269,6 @@ scripts/
314
269
  npm test
315
270
  ```
316
271
 
317
- This runs syntax checks on all source files and executes the test suite.
318
-
319
272
  ### Publishing
320
273
 
321
274
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bramblex/codex-workbench",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Terminal workbench for browsing and managing local and SSH Codex sessions.",
5
5
  "license": "MIT",
6
6
  "repository": {