Agent Skills for autonomous crypto trading on Hyperliquid — trailing stops, market scanning, position management, and more.
npx skills add https://github.com/senpi-ai/senpi-skills --skill wolf-strategyInstall this skill with the CLI and start using the SKILL.md workflow in your workspace.
52 AI trading agents. Open source. Real money. Live onchain.
Each skill is a self-contained autonomous trading agent that scans the Hyperfeed — Senpi's proprietary real-time data layer tracking the top 1,000 traders on Hyperliquid — and enters, manages, and exits positions 24/7 with no human in the loop.
Live fleet tracker: strategies.senpi.ai
Arena competition: senpi.ai/arena
Platform: senpi.ai
Fewer trades + higher conviction + wider stops = better performance.
This was proven across 30+ live agents with real money. The fleet's top performers are single-asset lifecycle hunters that wait for extreme Smart Money (SM) consensus before entering. The worst performers are high-frequency multi-asset scanners that churn fees.
The model is a commodity. The data layer is the edge. The runtime is the moat.
┌─────────────────────────────────────┐
│ SENPI PLATFORM │
│ │
│ 48 MCP Tools · Hyperfeed Data │
│ Top 1K Traders · Real-time Signals │
└──────────────┬──────────────────────┘
│
┌──────────────▼──────────────────────┐
│ PLUGIN RUNTIME │
│ │
│ position_tracker (10s) + DSL (30s) │
│ Tracks positions onchain │
│ Evaluates exits via DSL engine │
│ Eliminates state file bugs │
└──────────────┬──────────────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
┌────────▼────────┐ ┌────────▼────────┐ ┌─────────▼───────┐
│ SKILL (Scanner) │ │ SKILL (Scanner) │ │ SKILL (Scanner) │
│ cobra-scanner │ │ grizzly-scanner │ │ scorpion-scanner│
│ Entry logic only │ │ Entry logic only │ │ Entry logic only│
└────────┬─────────┘ └────────┬─────────┘ └────────┬────────┘
│ │ │
┌────────▼────────┐ ┌────────▼────────┐ ┌─────────▼───────┐
│ WALLET ($1K) │ │ WALLET ($1K) │ │ WALLET ($1K) │
│ Funded wallet │ │ Funded wallet │ │ Funded wallet │
│ Live on Hyperl. │ │ Live on Hyperl. │ │ Live on Hyperl. │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Skills contain the trading logic — a scanner that embodies a thesis about how to make money. Each skill is a self-contained directory with a scanner script, runtime.yaml, SKILL.md (agent instructions), and README.
The Plugin Runtime (runtime.yaml) manages position tracking and exits. The position_tracker polls onchain state every 10 seconds. The DSL engine evaluates exit conditions every 30 seconds. This eliminates an entire class of bugs from the Python DSL cron system (missing state files, wallet field injection, silent cron deaths).
Strategy Wallets are funded wallets on Hyperliquid. Each agent gets its own strategy wallet with isolated capital.
Every active agent runs on the plugin runtime defined in runtime.yaml. This replaced the legacy Python DSL cron system.
name: example-tracker
version: 1.0.0
description: >
Agent description here.
strategy:
wallet: "${WALLET_ADDRESS}"
budget: 1000
slots: 1 # Max concurrent positions
margin_per_slot: 400 # $ per position
enabled: true
scanners:
- name: position_tracker
type: position_tracker
interval: 10s # Polls onchain every 10 seconds
actions:
- name: position_tracker_action
action_type: POSITION_TRACKER
decision_mode: rule
scanners: [position_tracker]
exit:
engine: dsl
interval_seconds: 30 # Evaluates DSL every 30 seconds
dsl_preset:
hard_timeout:
enabled: true
interval_in_minutes: 180
weak_peak_cut:
enabled: true
interval_in_minutes: 60
min_value: 3.0
dead_weight_cut:
enabled: true
interval_in_minutes: 45
phase1:
enabled: true
max_loss_pct: 15.0
retrace_threshold: 8
consecutive_breaches_required: 3
phase2:
enabled: true
tiers:
- { trigger_pct: 5, lock_hw_pct: 25 }
- { trigger_pct: 10, lock_hw_pct: 45 }
- { trigger_pct: 15, lock_hw_pct: 60 }
- { trigger_pct: 20, lock_hw_pct: 75 }
notifications:
telegram_chat_id: "${TELEGRAM_CHAT_ID}"
Key rules:
version is always 1.0.0 in runtime.yaml (skill version lives in SKILL.md metadata)execution block is NOT supported in YAML — FEE_OPTIMIZED_LIMIT is specified in the scanner's entry output and passed to create_position via MCPThe DSL engine is the shared exit mechanism for every agent. It runs as a plugin, evaluating onchain position state every 30 seconds.
Phase 1 (Loss Protection): Monitors unrealized ROE against a dynamic floor. If ROE retraces beyond the threshold from the high water mark for N consecutive checks, the position is closed.
Phase 2 (Profit Locking): As ROE climbs past configurable tier triggers, the floor ratchets up. A position that hits +10% ROE locks in a percentage of that gain as a trailing stop.
Timeouts: Hard timeout closes positions that haven't moved. Weak peak cut exits positions stuck at low gains. Dead weight cut exits positions sitting at breakeven.
The scanner outputs complete DSL state when entering a position:
{
"coin": "BTC",
"direction": "SHORT",
"leverage": 10,
"leverageType": "CROSS",
"absoluteFloorRoe": null,
"highWaterRoe": null,
"highWaterPrice": null,
"currentTier": 0,
"consecutiveBreaches": 0,
"consecutiveBreachesRequired": 3,
"phase1MaxMinutes": 45,
"deadWeightCutMin": 45,
"phase1": {
"maxLossPct": 15.0,
"retraceThreshold": 8,
"enabled": true
},
"phase2": {
"enabled": true,
"tiers": [
{ "triggerPct": 5, "lockHwPct": 25 },
{ "triggerPct": 10, "lockHwPct": 45 },
{ "triggerPct": 15, "lockHwPct": 60 }
]
},
"hardTimeout": { "enabled": true, "intervalInMinutes": 180 },
"weakPeakCut": { "enabled": true, "intervalInMinutes": 60, "minValue": 3.0 },
"deadWeightCut": { "enabled": true, "intervalInMinutes": 45 }
}
Critical fields — get these wrong and positions run unprotected:
highWaterPrice: null (NOT 0 — DSL initializes this dynamically)absoluteFloorRoe: null (NOT a static price — DSL calculates dynamically)consecutiveBreachesRequired: 3 (prevents single-tick noise from closing)phase1MaxMinutes (NOT hardTimeoutMinutes)deadWeightCutMin (NOT deadWeightCutMinutes)All agents use FEE_OPTIMIZED_LIMIT orders specified in the scanner's entry JSON output (not in runtime.yaml):
{
"orderType": "FEE_OPTIMIZED_LIMIT",
"ensureExecutionAsTaker": true,
"executionTimeoutSeconds": 30
}
This places a maker order first (~0.02% fee), falls back to taker (~0.05% fee) if not filled in 30 seconds.
Patient agents that track one asset through HUNT→RIDE→STALK→RELOAD phases. Wait for extreme SM conviction before entering. Widest DSL settings.
| Skill | Asset | Description |
|---|---|---|
| 🐻❄️ Polar | ETH | Three-mode lifecycle. The patience benchmark. |
| 🐻 Grizzly v3.0 | BTC | BTC lifecycle hunter with hardened scoring. |
| 🐻 Grizzly Horribilis | BTC | Aggressive BTC variant. Higher leverage on conviction. |
| 🐻 Kodiak | SOL | SOL lifecycle hunter. |
| 🦡 Wolverine v2.0 | HYPE | HYPE hunter. Entry-only scanner, 7x leverage. |
| 🐆 Cheetah | HYPE | HYPE SM scanner with daily trade cap. |
Scan across BTC/ETH/SOL/HYPE for the highest SM conviction at any moment. Conviction-scaled margin allocation.
| Skill | Description |
|---|---|
| 🦅 Condor v2.0 | Multi-asset conviction-scaled margin (25/35/45%). |
| 🐋 Orca v2.0 | Canonical scanner template. Stalker + Striker dual-mode. |
| 🔥 Phoenix v2.0 | Contribution velocity scanner. SM profit velocity diverging from price. |
| 🐆 Jaguar v2.0 | Striker-only multi-asset. No Stalker, no pyramiding. |
Built specifically to win weekly Arena competitions. Higher conviction, concentrated margin.
| Skill | Description |
|---|---|
| 🐍 Cobra v1.1 | Arena Sprint Predator. Trades the #1 SM dominant asset with $400 margin, 10x leverage. |
| 🦂 Scorpion v2.0 | Altcoin Swarm Hunter. Detects coordinated altcoin risk-off events (5+ alts at SM >2%), trades the best target. |
Use advanced Hyperfeed signals — momentum events, trader quality tags (TCS/TRP), contribution velocity, inverted pipelines.
| Skill | Description |
|---|---|
| 🦅 Raptor v2.0 | Tier 2 momentum events + TCS/TRP quality tags. |
| 🛡️ Sentinel | Inverted pipeline: rising assets → verify quality traders. Most selective scanner. |
| 🍋 Lemon | Degen Fader. Counter-trades CHOPPY/DEGEN traders at 10x+ leverage bleeding -10%+ ROE. |
| 🦅 Bald Eagle v2.0 | XYZ Alpha Hunter. All 54 XYZ assets (commodities, indices, equities). Spread gate >0.1%. |
| Skill | Description |
|---|---|
| 🦬 Bison v1.2 | Conviction trend holder. Requires 4H/1H agreement. |
| 🐟 Barracuda | Funding decay collector. Building local funding history (230 assets, 11K+ snapshots). |
| 🦉 Owl | Contrarian crowding-unwind. |
| 🦈 Mako | Volume generation engine. Single Python process, no LLM in execution path. |
When scanners re-evaluate open positions and close them on "thesis invalidation," they chop winners before DSL can trail them. The one trade you let run is worth more than all other winners combined.
All v2.0+ agents output NO_REPLY when a position is active. DSL is the only exit mechanism.
Two agents can have nearly identical profit but wildly different fee loads. The difference: FEE_OPTIMIZED_LIMIT orders and wider DSL that doesn't churn in and out.
Whereever possible use FEE_OPTIMIZED_LIMIT and target a profit-to-fee ratio above 5:1.
XYZ assets (equities, indices, commodities) have different trading hours, spread characteristics, and liquidity profiles. All non-Bald Eagle scanners reject XYZ assets at the parse step.
The Senpi Arena is a weekly trading competition where all agents compete for prizes. Weeks run Thursday 00:00 UTC to Wednesday 23:59 UTC. Rankings are by ROE% (return on equity).
Live leaderboard: senpi.ai/arena
npx skills add Senpi-ai/senpi-skills/<skill-name>Each skill is self-contained in its directory. See any skill's SKILL.md for the full agent instructions. All active skills use the plugin runtime (runtime.yaml) and DSL dynamic stop loss for exits.
MIT — Built by Senpi. Backed by Lemniscap and Coinbase Ventures.