Codex support, and plainer docs

install.sh / install.ps1 synced from the source repo: they now wire the Codex
runtime where codex is on PATH, with --no-codex / -NoCodex to opt out.

README: say what gets wired and name the Windows flag spellings; drop the
stiffer wording in the licence and service sections; add a table of where the
binary, the data and the service definition actually live, since ~/.standup is
the thing people need to know about for backups and for STANDUP_HOME.

Signed-off-by: disqualifier <dev@disqualifier.me>
This commit is contained in:
dsql committed 2026-10-15 11:47:21 -04:00
1 parent 93473dd789
commit 419852e259
3 files changed
+72 -25

No files matched your search

+46 -23
View File
@@ -31,12 +31,21 @@ already set up prints status and changes nothing.
| --- | --- |
| `--skill-only` | skill and hooks only; no daemon, no service |
| `--no-node` | never provision Node; falls back to skill-only if yours is too old |
| `--no-codex` | don't wire Codex, even if it's installed |
| `--registry <url>` | install from somewhere other than the default registry |
| `--yes` | don't prompt |
Node 20 is the floor for single mode. The daemon needs 22.13 or newer, because
it uses `node:sqlite` without a flag.
Claude Code gets wired up either way. If `codex` is on your PATH that gets
wired too — hooks, the skill, and a marked block in your project's `AGENTS.md`.
If it isn't installed, nothing is written for it. `--no-codex` skips it on a
box that does have it.
Windows uses the same flags with PowerShell spelling: `-SkillOnly`, `-NoNode`,
`-NoCodex`, `-Registry <url>`, `-Yes`.
## Your licence key
You'll get a key as one long line with a dot in the middle:
@@ -45,16 +54,17 @@ You'll get a key as one long line with a dot in the middle:
eyJob2xkZXIiOiJBY21lIENvcnAiLCJlZGl0aW9uIjoicHJvIi...}.VI7V1ZkucEx_Vn7qxh2ep...
```
Install it either way:
Install it via cli:
```sh
standup license install ~/Downloads/acme.key --code YOUR-OPERATOR-CODE
```
Or open **http://127.0.0.1:7335/license** and paste the key into the box.
...or by opening **http://127.0.0.1:7335/license** and pasting your key in the
box.
The key is copied to `~/.standup/license.key` at `0600`. Delete the file you
were sent afterwards if you like — the install keeps its own copy.
The key will be installed to `~/.standup/license.key`, you do not need to save
your key file after installation.
```sh
standup license show # check what you're running under
@@ -80,11 +90,11 @@ If a key is refused, the error names which problem it is:
## Keeping the daemon alive
Use `standup service` rather than touching systemd, launchd or Task Scheduler
yourself. One set of commands, three platforms:
Use `standup service` instead of touching systemd, launchd or Task Scheduler
yourself — same commands on all three:
```sh
standup service install # install and enable at login
standup service install # install it, start it at login
standup service start
standup service status
standup service restart
@@ -92,42 +102,55 @@ standup service stop --code <operator code>
standup service uninstall --code <operator code>
```
Under the hood that's a systemd `--user` unit on Linux, a launchd agent on
macOS, and a scheduled task on Windows. `stop` and `uninstall` are
operator-only, so they want `--code`.
Behind that it's a systemd `--user` unit on Linux, a launchd agent on macOS and
a scheduled task on Windows. `stop` and `uninstall` need `--code` because
they're operator-only.
The installer runs `service install` and `start` for you on first run.
The installer does `install` and `start` for you on first run, so normally you
don't touch any of this.
### Linux without a systemd user bus
The unit gets written but not enabled, and the installer says so. **On WSL2**,
systemd is usually just off:
You'll get the unit written but not started, and the installer will say so.
**On WSL2** this is usually just systemd being off:
```sh
# add to /etc/wsl.conf
# /etc/wsl.conf
[boot]
systemd=true
```
Then `wsl --shutdown` from Windows and reopen the shell. After that
`standup service install` works normally.
Then `wsl --shutdown` from Windows, reopen your shell, and
`standup service install` will work.
**Containers and minimal boxes** may have no user bus at all. Run the daemon
directly and keep it up however you already supervise things:
Containers and stripped-down boxes may have no user bus at all. Run the daemon
yourself and supervise it however you already do:
```sh
standup daemon
```
### Checking it's up
### Is it up?
```sh
standup status
```
The daemon listens on `127.0.0.1:7335` by default. `standup status` tells you
which mode you're in, who holds the port, and — if the daemon is refusing
everything — whether a licence is what it wants.
That tells you which mode you're in, who's holding the port, and — if the
daemon is refusing everything — whether a licence is what it's waiting for.
The daemon listens on `127.0.0.1:7335` unless you've moved it.
## Where things live
| | |
| --- | --- |
| the `standup` binary | npm's global prefix (`npm config get prefix`) |
| all your data | `~/.standup/` — rooms, KB, config, licence |
| the service definition | `~/.config/systemd/user/standupd.service`, or `~/Library/LaunchAgents/io.rethinkstudios.standupd.plist`, or a scheduled task named `agent-standups standupd` |
`~/.standup/` is the whole install as far as your data goes — back that up and
you've backed up everything. Set `STANDUP_HOME` to put it somewhere else, and
you get a genuinely separate install sharing the same binary.
## Uninstall
@@ -135,4 +158,4 @@ everything — whether a licence is what it wants.
standup uninstall --yes --code <operator code>
```
Add `--purge` to take the data with it.
Add `--purge` if you want your data gone with it.