North star: Always-on trader that can explain itself.
Anytime, the bot can answer:
| Question | Where to look |
|---|---|
| What are you doing now? | state/now.json |
| What changed recently? | state/now.json β recent_changes |
| What did you learn? | journal/recaps/ + knowledge/tacit/ |
| What do you recommend? | suggestions/pending.json |
downrigger install trader # 6 steps, ready to trade
downrigger doctor # Verify green lightsworkspace/
βββ core/ # MEMORY, SOUL, TRADING_CONFIG, RISK_RULES
βββ knowledge/
β βββ pinned/ # CONSTITUTION (non-negotiable rules)
β βββ packs/ # Strategy/risk/execution patterns
β βββ tacit/ # Learned by THIS bot
βββ journal/
β βββ trades/ # Trade records
β βββ decisions/ # Explainability per intent
β βββ recaps/ # Daily summaries
βββ state/
β βββ now.json # Live status (one-file truth)
β βββ portfolio.json # Holdings snapshot
βββ episodes/ # A/B strategy tests
βββ suggestions/ # Proposed changes (need approval)
Identity:
core/MEMORY.mdβ Long-term knowledgecore/SOUL.mdβ Core identitycore/USER.mdβ Stakeholder info
Trading Brain:
core/TRADING_CONFIG.mdβ Risk limits, strategy settingscore/RISK_RULES.mdβ Hard safety constraintscore/STRATEGIES.mdβ Strategy definitionsknowledge/pinned/CONSTITUTION.mdβ Non-negotiable rules
Templates:
journal/decisions/β 2-5 bullet explainability per tradejournal/recaps/β Daily summary formatreports/incidents/β Autopsy template
| Frequency | Action | Output |
|---|---|---|
| Every trade | Write decision snapshot | journal/decisions/<intent_id>.md |
| Midnight | Generate daily recap | journal/recaps/YYYY-MM-DD.md |
| Monday 9am | Weekly synthesis | Suggestions + episode reviews |
| Post-episode | Evaluate A/B test | episodes/completed/ + recommendation |
health_check every 3 min Governor status, connectivity
reconcile_now every 5 min Holdings reconciliation backup
report_wallet daily 6am Report address to control plane
daily_recap midnight Generate trading summary
weekly_synthesis mon 9am Weekly review + suggestions
Commands:
install traderβ Full 6-step setupdoctorβ 9-check health reportreset --keep-walletβ Clean slatevoice set direct|calm|nerdyβ Cosmetic personalitypreferences list|confirm|rejectβ Manage captured preferencesexport-debug --last 24hβ Bundle for support
6-step install process:
- Directory structure
- Core files
- Wallet setup
- Trading templates
- Cron jobs
- Green lights report
One-file truth for "what are you doing now":
{
"mode": "paper",
"current_focus": "Scanning SOL/USDC",
"last_decision": "intent-abc-123",
"next_check_in": "2026-02-05T12:00:00Z",
"recent_changes": ["widened stop to 8%"],
"active_constraints": ["max_drawdown: 10%"],
"session_stats": { "trades_today": 3, "pnl": -45 }
}Every intent gets 2-5 bullets:
## Decision: intent-abc-123
- **Signals:** TrendFollowing +0.7, VolumeSpike +0.3
- **Rationale:** $1500 β $1200 (respects max_position_pct)
- **Blocked:** No β all checks passed
- **Exit:** Stop -8%, Target +20%, Time 48h
- **Confidence:** Signal 0.72, Execution 0.95Time-boxed experiments with metrics:
{
"hypothesis": "Wider stops reduce whipsaws",
"baseline": { "stop_loss_pct": 5 },
"test": { "stop_loss_pct": 8 },
"duration_days": 7,
"metrics": { "pnl": 0, "drawdown": 0, "win_rate": 0 }
}End-of-episode: Keep / Revert / Adjust
Auto-generated, human-approved:
{
"description": "Increase stop_loss_pct 5% β 8%",
"config_diff": { "stop_loss_pct": { "old": 5, "new": 8 } },
"expected_benefit": "Fewer whipsaws in volatile markets",
"risk_tradeoff": "Larger individual losses",
"confidence": 0.72,
"rollback_plan": "Revert to 5% if drawdown > 10%"
}One-tap approval via control plane.
Auto-generated when things go wrong:
## Incident: RPC_TIMEOUT_2026-02-05
- **Symptom:** Trade submission timeout after 10s
- **Impact:** 1 trade failed, $0 lost
- **Bot Actions:** Retried 3x, paused 2min
- **Recommended Fix:** Increase confirm_timeout_secs to 15Local kill switch (state/governor.json):
- Auto-triggers: 5 failures, RPC errors > 50%, drawdown exceeded
- Checked before every quote/swap
- Manual override: edit file, set
active: true
- Periodic wallet snapshots (address only, no keys)
export-debugbundles: logs, configs, incidents, snapshots- No secrets in exported bundles
downrigger voice set direct # "Lost $45. Stop too tight. Widening to 8%."
downrigger voice set calm # "The position closed with a $45 loss..."
downrigger voice set nerdy # "SOL/USDC closed at -$45 PnL. Stop at 1.2%..."Changes how it writes. Never changes what it trades.
Captures hints, requires confirmation:
User: "I never risk more than 3% per trade"
Bot: [stores candidate]
"Should I add this to your rules?"
User: "yes" β Pinned to CONSTITUTION
User: [ignore] β No behavior change
downrigger preferences confirm <id> # Approve
downrigger preferences reject <id> # DiscardPrevents LLM drift.
Important: This is designed for the Trawling Traders ecosystem.
| Component | Stands Alone? | Role |
|---|---|---|
downrigger CLI |
β Yes | Bootstrapper β creates workspace, configs, templates |
claw-trader-cli |
β Yes | The hands β quotes, swaps, shield checks, holdings |
bot-runner |
β No | The brain β requires Trawling Traders control plane |
bot-runner depends on:
- Trawling Traders control plane (
api.trawlingtraders.com) - Polls
/v1/bot/{id}/intentsfor trade decisions - Reports results back to centralized backend
- Long-polling architecture requires the backend to work
If you remove the trading-specific components, you get a normal OpenClaw instance:
Remove:
TRADING_CONFIG.md,RISK_RULES.md,STRATEGIES.mdβ Standard agent tasksjournal/trades/,state/portfolio.jsonβ Regular memory filesepisodes/β Normal project tracking- Trading-specific cron jobs β Standard heartbeat/improvement jobs
bot-runnerservice β Use standard OpenClaw agent sessions
Keep:
core/MEMORY.md,SOUL.md,USER.md,AGENTS.mdjournal/as daily notesknowledge/structure- Voice and preference systems work standalone
Bottom line: The organization and explainability systems are reusable. The trade execution requires Trawling Traders backend.
- Explainability over black box β Every decision has a paper trail
- Safety over speed β Governors override everything
- Human-in-the-loop β Suggestions need approval
- No silent drift β Preferences require confirmation
MIT