You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(session): flip DefaultAgent from codex to hermes (#26)
ctm new / ctm yolo without --agent now spawn Hermes Agent. The
default-name fallback in cmd/yolo.go's resolveSimpleName also flips,
so 'ctm yolo' with no args creates a session named 'hermes'.
Option 1 of the default-flip design: legacy claude rows continue to
migrate to 'codex' (the v2->v3 target) — not DefaultAgent — in both
Store.Save and Session.NormalizeAgent, so this flip cannot silently
retarget historical conversations. Tests pinned to the literal 'codex'
have been rewritten against session.DefaultAgent where they were
testing the default path, or pinned to Agent: "codex" where they
were testing codex-specific discovery.
README + CHANGELOG updated.
ctm new --agent codex # opt back into codex per-session
31
32
ctm last # one-word reconnect from your phone
32
33
```
33
34
@@ -57,7 +58,7 @@ codex 0.130.0 ~/projects/ctm ●
57
58
-**YOLO mode.** Auto-commits a git checkpoint before launching with `codex --sandbox danger-full-access`, so you can always roll back.
58
59
-**Preflight health checks.** Env vars, PATH, workdir, tmux session, codex process — cached for 60 s to keep mobile reconnects snappy.
59
60
-**Tight lifecycle coupling.** When codex exits, the tmux session dies. No stuck bash shells, no zombie tabs.
60
-
-**Multi-agent.**Codex is the default; pass `--agent hermes` to `ctm new` or `ctm yolo` to spawn [Hermes Agent](https://hermes-agent.dev) instead. New agents plug in via `internal/agent.Register` without touching call sites.
61
+
-**Multi-agent.**[Hermes Agent](https://hermes-agent.dev)is the default; pass `--agent codex` to `ctm new` or `ctm yolo` to spawn codex instead. New agents plug in via `internal/agent.Register` without touching call sites.
61
62
-**Crash-safe state.** Atomic writes, flock-based locking, strict JSON decode with self-healing strip-to-.bak, `schema_version` + startup migrations on `sessions.json` / `config.json`.
62
63
-**Zero non-tmux runtime deps.** Pure Go throughout. No `jq`, `pgrep`, `grep`, or `uuidgen` required.
63
64
@@ -92,7 +93,7 @@ go install github.com/RandomCodeSpace/ctm@latest
92
93
93
94
### Post-install
94
95
95
-
No extra setup step is required — the first time you run any codex-launching command (`ctm`, `ctm <name>`, `ctm new`, `ctm yolo`), ctm bootstraps `~/.config/ctm/` with sensible defaults, regenerates `tmux.conf` on every launch, and injects shell aliases into `~/.bashrc` / `~/.zshrc` if they exist.
96
+
No extra setup step is required — the first time you run any agent-launching command (`ctm`, `ctm <name>`, `ctm new`, `ctm yolo`), ctm bootstraps `~/.config/ctm/` with sensible defaults, regenerates `tmux.conf` on every launch, and injects shell aliases into `~/.bashrc` / `~/.zshrc` if they exist.
96
97
97
98
If you prefer an explicit setup step (or want the cc-session migration to run), `ctm install` still does the same work upfront.
98
99
@@ -172,7 +173,7 @@ Completion is aware of subcommands, flags, and (for `ctm attach`, `ctm kill`, `c
172
173
173
174
| Command | Description |
174
175
|---|---|
175
-
|`ctm`| Attach to the default session (`codex`). Creates it if missing. |
176
+
|`ctm`| Attach to the default session (`hermes`). Creates it if missing. |
176
177
|`ctm <name>`| Attach to a named session, or create it. |
177
178
|`ctm cc`| Shorthand for attaching to `cc`. |
178
179
|`ctm new <name>`| Create a new session in a specific workdir. |
0 commit comments