Test It Locally
Test Riptide changes against the local devstack through the UI, HumanLayer CLI, and...
Install
npx skills add humanlayer/humanlayer --skill test-it-locally -g -a claude-code -y- Repository
- humanlayer/humanlayer12.7k
- Category
- Design
- Updated
- 4d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 2,856 tokens
- Runs scripts
- No, instructions only
What it does
Test Riptide changes against the local devstack through the UI, HumanLayer CLI, and database. Use for local verification, agent-browser checks, local task or session creation, and devstack setup.
Test It Locally
Test the changed behavior and its stored state, not just whether the app loads.
Workflow
- Inspect the worktree stack. Read the whole plaintext output: it includes the local WorkOS organization, routes, ports, logs, generated env state, and an API health line. Sync only if it is missing or stale;
--compose --seedis usually already done, then runstatusagain.
bun --bun run devstack status
bun --bun run devstack sync --compose --seed
-
Use the
API healthcheckline from the fullbun --bun run devstack statusoutput.passedmeans the app stack is ready;failedmeans it is not running. -
If it failed, start Riptide in a tmux session that excludes the parent daemon's identity. This keeps the initial process and any later panes on the devstack's local identity. Use
riptide:nativeonly when the native shell matters.
STACK_ID="$(bun --bun run devstack status --json | jq -r '.id')" && \
TMUX_SESSION="riptide-$STACK_ID" && \
tmux new-session -d -s "$TMUX_SESSION" -c "$PWD" \
"env -u DAEMON_IDENTITY -u RIPTIDE_DAEMON_EXPECTED_IDENTITY bun --bun run riptide" && \
tmux set-environment -u -t "$TMUX_SESSION" DAEMON_IDENTITY && \
tmux set-environment -u -t "$TMUX_SESSION" RIPTIDE_DAEMON_EXPECTED_IDENTITY
tmux attach -t "$TMUX_SESSION"
Do not use tmux set-environment -gu; the tmux server is shared by other devstacks.
- Open the worktree URL headless with a browser session and profile keyed by the devstack ID. The named session isolates the running agent-browser daemon, while the profile persists cookies, IndexedDB, and cache. Both are needed so multiple devstacks can run browser checks in parallel without sharing state. Do not use
--session-name, the fixedriptideprofile, or a fixed localhost port.


