con un clic
local-test
// Build, run, and test Steward locally using Docker containers and Chrome MCP browser automation.
// Build, run, and test Steward locally using Docker containers and Chrome MCP browser automation.
Helps users delegate tasks, break them into steps, set deadlines, and track progress via routines and memory.
Suggests relevant cron routines based on user context, goals, and observed patterns
Install and operate a full GitHub issue-to-merge workflow in Steward using event-driven and cron routines. Use when setting up or tuning autonomous project orchestration: issue intake, planning, maintainer feedback handling, branch/PR execution, CI/comment follow-up, batched staging review every 8 hours, and memory updates from merge outcomes.
Pre-merge review checklist based on recurring AI reviewer feedback patterns
Test the Steward web UI using the Claude for Chrome browser extension.
| name | local-test |
| version | 0.1.0 |
| description | Build, run, and test Steward locally using Docker containers and Chrome MCP browser automation. |
| activation | {"keywords":["test locally","local test","docker test","test my changes","test in docker","test web gateway","spin up test","test container"],"patterns":["test.*local","docker.*test","spin.*up.*test","test.*changes.*docker"],"max_context_tokens":3000} |
Use this skill to build, run, and test Steward web gateway changes locally using Dockerfile.test and Chrome MCP browser automation tools.
# Build the test image (libsql-only, no PostgreSQL needed)
docker build --platform linux/amd64 -f Dockerfile.test -t steward-test .
# Run on port 3003 (default)
docker run --rm -p 3003:3003 \
-e ONBOARD_COMPLETED=true \
-e CLI_ENABLED=false \
-e NEARAI_API_KEY=<key> \
steward-test
# Open in browser
# http://localhost:3003/?token=test
The test Dockerfile uses a two-stage build: Rust compilation with --features libsql (no PostgreSQL dependency), then a minimal Debian runtime image.
docker build --platform linux/amd64 -f Dockerfile.test -t steward-test .
Build takes ~5-10 minutes on first run (cached subsequent builds are faster). The --platform linux/amd64 flag avoids QEMU warnings on Apple Silicon but can be omitted if targeting native architecture.
| Variable | Purpose | Default in Dockerfile |
|---|---|---|
ONBOARD_COMPLETED=true | Skip onboarding wizard (exits immediately otherwise) | not set |
CLI_ENABLED=false | Disable TUI/REPL (causes EOF shutdown otherwise) | not set |
Pick ONE of these configurations:
NEAR AI (API key mode):
docker run --rm -p 3003:3003 \
-e ONBOARD_COMPLETED=true \
-e CLI_ENABLED=false \
-e NEARAI_API_KEY=<your-key> \
steward-test
NEAR AI (session token mode):
docker run --rm -p 3003:3003 \
-e ONBOARD_COMPLETED=true \
-e CLI_ENABLED=false \
-e NEARAI_SESSION_TOKEN=<sess_xxx> \
-e NEARAI_BASE_URL=https://private.near.ai \
steward-test
OpenAI:
docker run --rm -p 3003:3003 \
-e ONBOARD_COMPLETED=true \
-e CLI_ENABLED=false \
-e LLM_BACKEND=openai \
-e OPENAI_API_KEY=<your-key> \
steward-test
Anthropic:
docker run --rm -p 3003:3003 \
-e ONBOARD_COMPLETED=true \
-e CLI_ENABLED=false \
-e LLM_BACKEND=anthropic \
-e ANTHROPIC_API_KEY=<your-key> \
steward-test
Dummy run (no LLM, just test the UI loads):
docker run --rm -p 3003:3003 \
-e ONBOARD_COMPLETED=true \
-e CLI_ENABLED=false \
-e NEARAI_API_KEY=dummy \
steward-test
| Variable | Purpose | Example |
|---|---|---|
GATEWAY_PORT | Change the listen port | 3003 (default) |
GATEWAY_AUTH_TOKEN | Auth token for API | test (default) |
NEARAI_MODEL | Override LLM model | claude-3-5-sonnet-20241022 |
RUST_LOG | Logging verbosity | steward=debug |
ROUTINES_ENABLED | Enable routines | true/false |
SKILLS_ENABLED | Enable skills system | true (default) |
Run multiple containers on different host ports:
docker run --rm -d --name ic-test-a -p 3003:3003 -e ONBOARD_COMPLETED=true -e CLI_ENABLED=false -e NEARAI_API_KEY=dummy steward-test
docker run --rm -d --name ic-test-b -p 3004:3003 -e ONBOARD_COMPLETED=true -e CLI_ENABLED=false -e NEARAI_API_KEY=dummy steward-test
Use the Claude for Chrome browser automation tools to test the web UI.
mcp__claude-in-chrome__tabs_context_mcp
Always start here to see current tabs and get fresh tab IDs.
mcp__claude-in-chrome__tabs_create_mcp url=http://localhost:3003/?token=test
mcp__claude-in-chrome__read_page
Check for:
mcp__claude-in-chrome__computer action=screenshot
mcp__claude-in-chrome__resize_window width=375 height=812
mcp__claude-in-chrome__computer action=screenshot
Reset to desktop:
mcp__claude-in-chrome__resize_window width=1280 height=800
mcp__claude-in-chrome__javascript_tool script="document.querySelector('.connection-status')?.textContent"
Click tabs, send messages, search skills — use computer tool with action=click and coordinate-based clicks, or use find + form_input for text entry.
# Stop a specific container
docker stop ic-test-a
# Stop all test containers
docker ps --filter ancestor=steward-test -q | xargs -r docker stop
# Remove the test image
docker rmi steward-test
ONBOARD_COMPLETED=true: The onboarding wizard tries to read stdin, gets EOF, and exits.CLI_ENABLED=false: The REPL channel reads stdin, gets EOF, and shuts down the agent.NEARAI_BASE_URL=https://private.near.ai.--platform linux/amd64 flag causes QEMU emulation warnings — these are harmless.-p 3005:3003.GATEWAY_HOST=0.0.0.0 (set by default in Dockerfile).docker logs <container-id>.?token=test.