|
7 | 7 |
|
8 | 8 | ## Build, Test, and Development Commands |
9 | 9 | - Install deps: `pnpm install` |
10 | | -- Run CLI in dev: `pnpm clawdis ...` (tsx entry) or `pnpm dev` for `src/index.ts`. |
| 10 | +- Run CLI in dev: `pnpm clawdbot ...` (tsx entry) or `pnpm dev` for `src/index.ts`. |
11 | 11 | - Type-check/build: `pnpm build` (tsc) |
12 | 12 | - Lint/format: `pnpm lint` (biome check), `pnpm format` (biome format) |
13 | 13 | - Tests: `pnpm test` (vitest); coverage: `pnpm test:coverage` |
|
32 | 32 | - PRs should summarize scope, note testing performed, and mention any user-facing changes or new flags. |
33 | 33 |
|
34 | 34 | ## Security & Configuration Tips |
35 | | -- Web provider stores creds at `~/.clawdis/credentials/`; rerun `clawdis login` if logged out. |
36 | | -- Pi sessions live under `~/.clawdis/sessions/` by default; the base directory is not configurable. |
| 35 | +- Web provider stores creds at `~/.clawdbot/credentials/`; rerun `clawdbot login` if logged out. |
| 36 | +- Pi sessions live under `~/.clawdbot/sessions/` by default; the base directory is not configurable. |
37 | 37 | - Never commit or publish real phone numbers, videos, or live configuration values. Use obviously fake placeholders in docs, tests, and examples. |
38 | 38 |
|
39 | 39 | ## Agent-Specific Notes |
40 | | -- Gateway currently runs only as the menubar app (launchctl shows `application.com.steipete.clawdis.debug.*`), there is no separate LaunchAgent/helper label installed. Restart via the Clawdis Mac app or `scripts/restart-mac.sh`; to verify/kill use `launchctl print gui/$UID | grep clawdis` rather than expecting `com.steipete.clawdis`. **When debugging on macOS, start/stop the gateway via the app, not ad-hoc tmux sessions; kill any temporary tunnels before handoff.** |
41 | | -- macOS logs: use `./scripts/clawlog.sh` (aka `vtlog`) to query unified logs for subsystem `com.steipete.clawdis`; it supports follow/tail/category filters and expects passwordless sudo for `/usr/bin/log`. |
| 40 | +- Gateway currently runs only as the menubar app (launchctl shows `application.com.steipete.clawdbot.debug.*`), there is no separate LaunchAgent/helper label installed. Restart via the Clawdbot Mac app or `scripts/restart-mac.sh`; to verify/kill use `launchctl print gui/$UID | grep clawdbot` rather than expecting `com.steipete.clawdbot`. **When debugging on macOS, start/stop the gateway via the app, not ad-hoc tmux sessions; kill any temporary tunnels before handoff.** |
| 41 | +- macOS logs: use `./scripts/clawlog.sh` (aka `vtlog`) to query unified logs for subsystem `com.steipete.clawdbot`; it supports follow/tail/category filters and expects passwordless sudo for `/usr/bin/log`. |
42 | 42 | - Also read the shared guardrails at `~/Projects/oracle/AGENTS.md` and `~/Projects/agent-scripts/AGENTS.MD` before making changes; align with any cross-repo rules noted there. |
43 | 43 | - SwiftUI state management (iOS/macOS): prefer the `Observation` framework (`@Observable`, `@Bindable`) over `ObservableObject`/`@StateObject`; don’t introduce new `ObservableObject` unless required for compatibility, and migrate existing usages when touching related code. |
44 | 44 | - Connection providers: when adding a new connection, update every UI surface and docs (macOS app, web UI, mobile if applicable, onboarding/overview docs) and add matching status + configuration forms so provider lists and settings stay in sync. |
|
52 | 52 | - **Multi-agent safety:** do **not** create/remove/modify `git worktree` checkouts (or edit `.worktrees/*`) unless Peter explicitly asks. |
53 | 53 | - **Multi-agent safety:** do **not** switch branches / check out a different branch unless Peter explicitly asks. |
54 | 54 | - **Multi-agent safety:** running multiple agents is OK as long as each agent has its own session. |
55 | | -- When asked to open a “session” file, open the Pi session logs under `~/.clawdis/sessions/*.jsonl` (newest unless a specific ID is given), not the default `sessions.json`. If logs are needed from Mac Studio, SSH via Tailscale and read the same path there. |
56 | | -- Menubar dimming + restart flow mirrors Trimmy: use `scripts/restart-mac.sh` (kills all Clawdis variants, runs `swift build`, packages, relaunches). Icon dimming depends on MenuBarExtraAccess wiring in AppMain; keep `appearsDisabled` updates intact when touching the status item. |
| 55 | +- When asked to open a “session” file, open the Pi session logs under `~/.clawdbot/sessions/*.jsonl` (newest unless a specific ID is given), not the default `sessions.json`. If logs are needed from Mac Studio, SSH via Tailscale and read the same path there. |
| 56 | +- Menubar dimming + restart flow mirrors Trimmy: use `scripts/restart-mac.sh` (kills all Clawdbot variants, runs `swift build`, packages, relaunches). Icon dimming depends on MenuBarExtraAccess wiring in AppMain; keep `appearsDisabled` updates intact when touching the status item. |
57 | 57 | - Do not rebuild the macOS app over SSH; rebuilds must be run directly on the Mac. |
58 | 58 | - Never send streaming/partial replies to external messaging surfaces (WhatsApp, Telegram); only final replies should be delivered there. Streaming/tool events may still go to internal UIs/control channel. |
59 | 59 | - Voice wake forwarding tips: |
60 | | - - Command template should stay `clawdis-mac agent --message "${text}" --thinking low`; `VoiceWakeForwarder` already shell-escapes `${text}`. Don’t add extra quotes. |
61 | | - - launchd PATH is minimal; ensure the app’s launch agent sets PATH to include `/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/steipete/Library/pnpm` so `pnpm`/`clawdis` binaries resolve when invoked via `clawdis-mac`. |
62 | | - - For manual `clawdis send` messages that include `!`, use the heredoc pattern noted below to avoid the Bash tool’s escaping. |
| 60 | + - Command template should stay `clawdbot-mac agent --message "${text}" --thinking low`; `VoiceWakeForwarder` already shell-escapes `${text}`. Don’t add extra quotes. |
| 61 | + - launchd PATH is minimal; ensure the app’s launch agent sets PATH to include `/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/steipete/Library/pnpm` so `pnpm`/`clawdbot` binaries resolve when invoked via `clawdbot-mac`. |
| 62 | + - For manual `clawdbot send` messages that include `!`, use the heredoc pattern noted below to avoid the Bash tool’s escaping. |
63 | 63 |
|
64 | 64 | ## Exclamation Mark Escaping Workaround |
65 | | -The Claude Code Bash tool escapes `!` to `\\!` in command arguments. When using `clawdis send` with messages containing exclamation marks, use heredoc syntax: |
| 65 | +The Claude Code Bash tool escapes `!` to `\\!` in command arguments. When using `clawdbot send` with messages containing exclamation marks, use heredoc syntax: |
66 | 66 |
|
67 | 67 | ```bash |
68 | 68 | # WRONG - will send "Hello\\!" with backslash |
69 | | -clawdis send --to "+1234" --message 'Hello!' |
| 69 | +clawdbot send --to "+1234" --message 'Hello!' |
70 | 70 |
|
71 | 71 | # CORRECT - use heredoc to avoid escaping |
72 | | -clawdis send --to "+1234" --message "$(cat <<'EOF' |
| 72 | +clawdbot send --to "+1234" --message "$(cat <<'EOF' |
73 | 73 | Hello! |
74 | 74 | EOF |
75 | 75 | )" |
76 | 76 | ``` |
77 | 77 |
|
78 | | -This is a Claude Code quirk, not a clawdis bug. |
| 78 | +This is a Claude Code quirk, not a clawdbot bug. |
0 commit comments