@projmux/darwin-arm64 0.4.2 → 0.4.4
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 +64 -79
- package/bin/projmux +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,6 +7,9 @@ sidebar navigation, generated keybindings, status metadata, and AI-pane
|
|
|
7
7
|
attention signals. It can run as its own tmux app (`projmux shell`) or install
|
|
8
8
|
the same behavior into your existing tmux server.
|
|
9
9
|
|
|
10
|
+
[](https://www.npmjs.com/package/projmux)
|
|
11
|
+
[](https://github.com/crevissepartners/projmux/actions/workflows/ci.yml)
|
|
12
|
+
|
|
10
13
|
[한국어 README](README-ko.md)
|
|
11
14
|
|
|
12
15
|
## Why projmux
|
|
@@ -29,26 +32,6 @@ for a daily terminal workspace:
|
|
|
29
32
|
self-contained tmux app, or install the generated snippet into your normal
|
|
30
33
|
tmux server.
|
|
31
34
|
|
|
32
|
-
## What's new in 0.4
|
|
33
|
-
|
|
34
|
-
- **`projmux setup` / `projmux init`** — diagnose terminal key delivery,
|
|
35
|
-
then auto-merge the right CSI-u bindings into Ghostty or Windows
|
|
36
|
-
Terminal configs.
|
|
37
|
-
- **`projmux doctor`** — runtime dependency report with minimum-version
|
|
38
|
-
enforcement (tmux 3.4, fzf 0.55).
|
|
39
|
-
- **`projmux focus`** — unified switch-client dispatch shared by the
|
|
40
|
-
AI reply-ready flow and the status-bar notify click.
|
|
41
|
-
- **Persistent notify queue** — `projmux notify push|list|ack|reconcile`
|
|
42
|
-
with TTL, severity, source, and target metadata. See
|
|
43
|
-
[notify-queue.md](docs/notify-queue.md).
|
|
44
|
-
- **Authoritative usage tracking** — `projmux usage` reads Claude's
|
|
45
|
-
OAuth usage endpoint and Codex's local rollout `rate_limits`. See
|
|
46
|
-
[usage-tracking.md](docs/usage-tracking.md).
|
|
47
|
-
- **Two-line clickable status bar** — row 0 keeps the native window
|
|
48
|
-
list (click a tab to switch), row 1 splits a notify HUD pill (left)
|
|
49
|
-
and a usage HUD bar (right). Both segments degrade gracefully on
|
|
50
|
-
narrow status budgets. See [statusbar.md](docs/statusbar.md).
|
|
51
|
-
|
|
52
35
|
## What It Does
|
|
53
36
|
|
|
54
37
|
- Creates or switches to tmux sessions from project directories.
|
|
@@ -81,10 +64,14 @@ Open the app once, then use its generated tmux bindings to:
|
|
|
81
64
|
|
|
82
65
|
## Requirements
|
|
83
66
|
|
|
84
|
-
- [
|
|
67
|
+
- [Node.js](https://nodejs.org/) and npm — required for the recommended npm
|
|
68
|
+
install path.
|
|
69
|
+
- [Go 1.24+](https://go.dev/dl/) — required only when installing with
|
|
70
|
+
`go install` or building from source.
|
|
85
71
|
- [tmux](https://github.com/tmux/tmux/wiki/Installing) **≥ 3.4** — the workspace runtime. Earlier versions miss `display-popup -T` and other features projmux depends on.
|
|
86
72
|
- [fzf](https://github.com/junegunn/fzf#installation) **≥ 0.55** — interactive popup/sidebar pickers. The multiline picker uses `--marker-multi-line`, `--gap-line`, and `--highlight-line`, which landed by 0.55.
|
|
87
|
-
-
|
|
73
|
+
- A Unix shell such as `bash`, `zsh`, or `sh` — `projmux shell` uses your
|
|
74
|
+
absolute `$SHELL` for the generated app config, falling back to `/bin/sh`.
|
|
88
75
|
- [git](https://git-scm.com/downloads) — branch/status metadata.
|
|
89
76
|
- `stty` — POSIX terminal control, used by `projmux setup`. Already shipped by every macOS / Linux base system; not applicable on Windows hosts.
|
|
90
77
|
- [kubectl](https://kubernetes.io/docs/tasks/tools/) — optional, only for the Kubernetes status segment.
|
|
@@ -92,40 +79,49 @@ Open the app once, then use its generated tmux bindings to:
|
|
|
92
79
|
Desktop notifications: Linux uses `notify-send`; WSL routes Windows toasts via
|
|
93
80
|
`powershell.exe`. Override either with `PROJMUX_NOTIFY_HOOK`.
|
|
94
81
|
|
|
95
|
-
Run `projmux doctor` any time to verify
|
|
96
|
-
tmux/fzf meet the minimum supported versions.
|
|
82
|
+
Run `projmux doctor` any time to verify runtime dependencies are on `PATH`
|
|
83
|
+
and that tmux/fzf meet the minimum supported versions. Terminal key delivery
|
|
84
|
+
is diagnosed separately with `projmux setup`.
|
|
97
85
|
|
|
98
86
|
## Install
|
|
99
87
|
|
|
100
88
|
```sh
|
|
101
|
-
|
|
89
|
+
npm install -g projmux
|
|
102
90
|
```
|
|
103
91
|
|
|
104
|
-
|
|
105
|
-
|
|
92
|
+
npm installs a small Node.js shim plus the matching platform binary package
|
|
93
|
+
for Linux and macOS on x64 or arm64. The shim marks the install as npm-managed
|
|
94
|
+
so `projmux update` and the Settings About screen can use the right upgrade
|
|
95
|
+
path.
|
|
96
|
+
|
|
97
|
+
Verify:
|
|
106
98
|
|
|
107
99
|
```sh
|
|
108
|
-
|
|
100
|
+
projmux version
|
|
109
101
|
```
|
|
110
102
|
|
|
111
|
-
|
|
103
|
+
If npm is not a fit for your machine, install with Go:
|
|
112
104
|
|
|
113
105
|
```sh
|
|
114
|
-
projmux
|
|
106
|
+
go install github.com/crevissepartners/projmux/cmd/projmux@latest
|
|
115
107
|
```
|
|
116
108
|
|
|
109
|
+
This drops the binary in `$(go env GOBIN)` (when set) or `$(go env GOPATH)/bin`
|
|
110
|
+
(default `~/go/bin`). Make sure that directory is on your `PATH`.
|
|
111
|
+
|
|
117
112
|
### Optional: `PROJMUX_PROJDIR`
|
|
118
113
|
|
|
119
|
-
`PROJMUX_PROJDIR` is the
|
|
120
|
-
discovery. It is optional
|
|
121
|
-
|
|
122
|
-
`~/source
|
|
114
|
+
`PROJMUX_PROJDIR` is the primary project root projmux uses for picker and
|
|
115
|
+
discovery when you explicitly configure it. It is optional; when unset,
|
|
116
|
+
projmux does not assume a canonical repo root. Discovery still uses pins, live
|
|
117
|
+
sessions, saved workdirs, and weak common-folder probes (`~/source`, `~/work`,
|
|
118
|
+
`~/projects`, `~/src`, `~/code`) when they exist.
|
|
123
119
|
|
|
124
120
|
```sh
|
|
125
|
-
export PROJMUX_PROJDIR="
|
|
121
|
+
export PROJMUX_PROJDIR="/your/path"
|
|
126
122
|
```
|
|
127
123
|
|
|
128
|
-
Add the line to `~/.zshrc
|
|
124
|
+
Add the line to `~/.bashrc`, `~/.zshrc`, or your shell's rc file. The resolved value is
|
|
129
125
|
memoized to `~/.config/projmux/projdir` after first use, so later shells keep
|
|
130
126
|
the same root even without the env var.
|
|
131
127
|
|
|
@@ -138,14 +134,13 @@ search list, so they participate in discovery just like
|
|
|
138
134
|
|
|
139
135
|
```sh
|
|
140
136
|
# Linux/macOS — primary repo + secondary search root
|
|
141
|
-
export PROJMUX_PROJDIR="
|
|
137
|
+
export PROJMUX_PROJDIR="/main/repos:/srv/work/repos"
|
|
142
138
|
```
|
|
143
139
|
|
|
144
|
-
#### Set the project root
|
|
140
|
+
#### Set the project root during setup
|
|
145
141
|
|
|
146
142
|
```sh
|
|
147
|
-
PROJMUX_PROJDIR=/your/path
|
|
148
|
-
PROJMUX_PROJDIR=/your/path projmux tmux apply
|
|
143
|
+
PROJMUX_PROJDIR=/your/path projmux shell
|
|
149
144
|
```
|
|
150
145
|
|
|
151
146
|
The first invocation that sees the env var writes
|
|
@@ -173,13 +168,15 @@ projmux shell
|
|
|
173
168
|
```
|
|
174
169
|
|
|
175
170
|
projmux owns this tmux server, its generated config, status bar, and popup
|
|
176
|
-
bindings.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
171
|
+
bindings. Cooperative terminals get `Alt-1`..`Alt-5` immediately, with no
|
|
172
|
+
terminal config. The left status badge shows the current project name; the
|
|
173
|
+
right side shows path, kube segment, git segment, and clock.
|
|
174
|
+
|
|
175
|
+
If a key does not fire, run `projmux setup` outside tmux to see which
|
|
176
|
+
sequences your terminal swallows. For supported terminals, preview the
|
|
177
|
+
fallback with `projmux init [terminal]`, then apply it with
|
|
178
|
+
`projmux init [terminal] --apply` (auto-detects when no terminal is given).
|
|
179
|
+
Dotfiles users on multi-machine setups should pass
|
|
183
180
|
`--allow-symlink` or `--config <path>` to make their intent explicit. Full
|
|
184
181
|
flow and the manual CSI-u fallback are in
|
|
185
182
|
[Terminal Keybindings](docs/keybindings.md).
|
|
@@ -190,50 +187,37 @@ for the supported versions.
|
|
|
190
187
|
|
|
191
188
|
## Upgrading
|
|
192
189
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
190
|
+
The Settings About screen is the normal interactive update surface: it shows
|
|
191
|
+
cached release status, installer source, Check Updates, Update Now, and
|
|
192
|
+
release notes. The startup update prompt uses the same cache and never reaches
|
|
193
|
+
the network.
|
|
194
|
+
To refresh the cached release status manually, run:
|
|
196
195
|
|
|
197
196
|
```sh
|
|
198
|
-
projmux
|
|
199
|
-
projmux upgrade --ref @v0.2.0 # pin a specific tag
|
|
200
|
-
projmux upgrade --ref @main # track a branch
|
|
201
|
-
projmux upgrade --target /usr/local/bin/projmux # replace another path
|
|
202
|
-
projmux upgrade --no-apply # skip 'projmux tmux apply'
|
|
203
|
-
projmux upgrade --dry-run # print the steps only
|
|
197
|
+
projmux update check
|
|
204
198
|
```
|
|
205
199
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
Pass a new project root inline to atomically switch the binary and the saved
|
|
211
|
-
projdir in one step:
|
|
212
|
-
|
|
213
|
-
```sh
|
|
214
|
-
PROJMUX_PROJDIR=/new/path projmux upgrade
|
|
215
|
-
|
|
216
|
-
# Multi-path also works; only the primary entry is persisted to the saved file.
|
|
217
|
-
PROJMUX_PROJDIR="/main/repos:/secondary/repos" projmux upgrade # Linux/macOS
|
|
218
|
-
# Windows: PROJMUX_PROJDIR="C:\main\repos;C:\secondary\repos"
|
|
219
|
-
```
|
|
200
|
+
Use Settings > About > Update or `projmux update apply` to update through the
|
|
201
|
+
detected installer. See [Upgrading](docs/upgrading.md) for npm, Go, GitHub
|
|
202
|
+
Release, and source-checkout details.
|
|
220
203
|
|
|
221
204
|
## Usage
|
|
222
205
|
|
|
223
206
|
Day-to-day, projmux is driven by tmux keybindings inside `projmux shell` — see
|
|
224
207
|
[Terminal Keybindings](docs/keybindings.md). For the full CLI surface (pins,
|
|
225
|
-
preview state, status helpers,
|
|
208
|
+
preview state, status helpers, updates, etc.), run `projmux help` or
|
|
226
209
|
`<command> --help`.
|
|
227
210
|
|
|
228
211
|
## How It Finds Projects
|
|
229
212
|
|
|
230
213
|
`projmux switch` combines pinned directories, live tmux sessions, and discovered
|
|
231
|
-
project roots.
|
|
232
|
-
as `~/source`, `~/work`, `~/projects`, `~/src`,
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
214
|
+
project roots. When no explicit search roots are configured, discovery uses
|
|
215
|
+
weak common-folder probes such as `~/source`, `~/work`, `~/projects`, `~/src`,
|
|
216
|
+
and `~/code` if they exist; it does not assume a canonical `~/source/repos`
|
|
217
|
+
root. `projmux settings` also has `Project Picker > Add Project...`, which
|
|
218
|
+
scans filesystem roots up to depth 3 so projects outside the weak probes can be
|
|
219
|
+
added to the picker. Session names are derived from normalized directory paths,
|
|
220
|
+
so a project keeps the same tmux session name across launches.
|
|
237
221
|
|
|
238
222
|
For permanent search-root customization, the Project Picker section also
|
|
239
223
|
includes:
|
|
@@ -264,8 +248,8 @@ and troubleshooting.
|
|
|
264
248
|
|
|
265
249
|
| Variable | Purpose |
|
|
266
250
|
| --- | --- |
|
|
267
|
-
| `PROJMUX_PROJDIR` |
|
|
268
|
-
| `PROJMUX_MANAGED_ROOTS` | Colon-separated list of search roots. Overrides the saved/
|
|
251
|
+
| `PROJMUX_PROJDIR` | Explicit primary project root for the current shell. Accepts an OS-native PATH-style multi-value: the first entry is the primary repo root (memoized to `~/.config/projmux/projdir`), and any additional entries are prepended to the managed-roots search list. |
|
|
252
|
+
| `PROJMUX_MANAGED_ROOTS` | Colon-separated list of search roots. Overrides the saved/heuristic list. |
|
|
269
253
|
| `PROJMUX_NOTIFY_HOOK` | External executable that receives AI desktop notifications instead of the built-in sender. |
|
|
270
254
|
| `PROJMUX_USAGE_STATE_DIR` | Override directory for the AI-usage snapshot cache. Defaults to `<state>/projmux/usage`. Point this at a synced location (Dropbox, iCloud Drive, etc) to share authoritative usage between machines. |
|
|
271
255
|
| `PROJMUX_USAGE_DEBUG` | When non-empty, surfaces adapter errors from `projmux status usage` to stderr instead of swallowing them. |
|
|
@@ -316,6 +300,7 @@ More documentation:
|
|
|
316
300
|
- [Statusbar](docs/statusbar.md)
|
|
317
301
|
- [Notify queue](docs/notify-queue.md)
|
|
318
302
|
- [Usage tracking](docs/usage-tracking.md)
|
|
303
|
+
- [Upgrading](docs/upgrading.md)
|
|
319
304
|
- [Hooks](docs/hooks.md)
|
|
320
305
|
- [Migration Plan](docs/migration-plan.md)
|
|
321
306
|
- [Repo Layout](docs/repo-layout.md)
|
package/bin/projmux
CHANGED
|
Binary file
|