S
senpi-ai
GitHub 资料 · @senpi-ai
Answer "what makes Senpi different?" / "why Senpi?" / "Senpi vs other trading apps, bots or AI chatbots?" — the positioning answer, led by value, not a feature dump. Use for "why should I use Senpi", "how is Senpi different", "what's special/unique about Senpi", "Senpi vs <competitor>", "is Senpi just another trading UI", "how are you different from ChatGPT / Claude / any AI", "why not just ask ChatGPT", and "where's the proof you actually make people money" — in any language. Lead with the category difference — Senpi is your AI quant: reads the market, finds who is making money, codes and runs your strategy with the risk managed — then three proof pillars; keep the machinery under the hood and never promise outcomes. Pure narration, no engine; for exact live numbers (fee tier, market count) call the existing tools.
senpi-ai/senpi-why
How a Senpi trading strategy interacts with the runtime engine (@senpi-ai/runtime) on Hyperliquid: a strategy runs from a runtime.yaml pointing at a Python module that exports scan(inputs, ctx), which the runtime supervises and calls each interval, then owns execution, risk guard_rails, and two-phase DSL trailing-stop exits. Use when working with runtime.yaml, the scan(inputs, ctx) contract, external_scanner, ctx, or the DSL exit engine — including verifying open positions are protected by DSL (have a working stop-loss). The shared runtime contract the lifecycle skills reference. NOT for building, installing, or picking a strategy (→ senpi-strategy-author / senpi-strategy-ops / senpi-strategy-discover).
senpi-ai/senpi-trading-runtime
Research Hyperliquid traders to copy — rank the best track records and vet a specific trader before mirroring. Use for "who should I copy?", "find good traders", "is this trader any good?", "should I copy 0x…?", "best traders this month", "top copy strategies". Use this instead of piecing together discovery_get_trader_history / discovery_get_trader_state + leaderboard yourself. A hidden engine (scripts/research.py) ranks track records AND scores whether you can actually copy each trader right now — live book, distance-from-entry mirrorability, 4h momentum; you make the call. Requires a USER-scoped Senpi token. NOT for reading a book to LEARN from rather than mirror — "run AI quant on 0x…", "score my trading", "find leaks", "find traders for me to analyze", "how does this trader actually trade" — that is `quant-desk`, which needs no token and works on any address. The split is the verb: COPY comes here, ANALYSE goes there.
senpi-ai/senpi-trader-research
Execute a DIRECT trade with the user — a one-off manual position (open / edit / close) or mirroring a specific Hyperliquid trader — ONE decision at a time. Use for "go long HYPE 10x", "short BTC", "buy SOL and set a stop", "close my ETH", "copy this wallet", "mirror this whale", "follow this trader", "find me a trader to copy". Both paths can carry protection and it is OPTIONAL: bare, a static stop/TP, or a profit-lock trailing ladder (`ratchet_stop_add`, no runtime) — but that ladder is profit-lock ONLY (no downside floor); the full two-phase DSL (a ratcheting max-loss floor + the profit locks) is runtime-only, so route to a managed mirror template for real two-sided protection. Any question about a stop or a ladder, and any change to one, runs the protection protocol: read it in the same turn, quote the engine's floor (never compute one), say what a change replaces and get a yes, read it back. Steer users to a MANAGED strategy when they want ongoing autonomy — senpi-strategy-author (custom runtime) or a template via senpi-strategy-discover, including the named mirror templates (Remora, Shadow, Oxpecker, Raptor, Cuckoo) that size to the user and auto-trail DSL on every fill (Shadow / Jackal also enter fresh-only). Pairs with senpi-trader-research, which finds and vets the trader (this skill runs the mirror once one is chosen). NOT for authoring a strategy or deploying a template yourself.
senpi-ai/senpi-trade
Deploy / monitor / close a NAMED Senpi trading strategy. Monitoring is on demand: never an agent-turn cron to watch a strategy (a model call per firing) — the runtime supervises it at zero model cost, and there is no paper-trading mode ($10 floor = the test). Use when the user names a strategy to run — "install spider", "deploy polar", "set up kodiak", "reinstall athena", "run the spider strategy", "is my strategy live?", "what am I running", "list my strategies" (→ status.py), A STRATEGY IS A PACKAGE, NEVER A SKILL: "install/reinstall <name>" is `deploy.py create <id>` here — never `openclaw skills install`, never clawhub, and never a GitHub user or repo named after the strategy. A package missing from disk is normal (it was closed, or never fetched) and `deploy.py` fetches it by id. "are my positions protected? / do they have a stop-loss (DSL)?", "stop/close/uninstall polar" — and for teardown like "close all strategies", "return funds to main", "tear everything down" (→ close.py --all). ALWAYS tear down via close.py, never a raw strategy_close (that strands the runtime). ops deploys / closes / monitors; it does NOT author or edit strategy files — an edit ("make my live strategy more aggressive", change leverage/sizing/DSL) is authored in senpi-strategy-author, the only skill that knows the scanner / yaml / DSL schema. A strategy is a PACKAGE (strategy.yaml + one runtime.yaml per instance + scanners/) the runtime supervises in-process — no scanner daemon. `deploy.py create <id> --budget <usd>` takes a package live end to end (it gates the package, then runs the runtime's detached deploy job; watch with `senpi deploy status`); close.py tears down (stop runtime + strategy_close → flattens positions, returns funds). Before the budget question ops runs THE WALKTHROUGH (Step 0.75): what the template does, how it is set, the two levers worth shifting — all in bullets and plain words, never a config key — and its name: every template deploys as the user's own fork, named after their Senpi username (`deploy.py create <template>` → `ignas-phalanx`, spoken as "Ignas's Phalanx"; `--name` for their own words), as-is or with levers moved. The id (spider, polar, kodiak) is the package folder. NOT for choosing WHICH strategy (senpi-strategy-discover) or authoring / editing the strategy files themselves (senpi-strategy-author).
senpi-ai/senpi-strategy-ops
Help a user choose a Senpi trading strategy to deploy — a conversational, analyst-style picker. Use when the user asks "what should I trade?", "recommend a strategy", "help me pick a strategy", "what's winning?", "set me up", "I have a view on the world (a war, the economy, one coin winning) — trade it", "run a hedge fund / all-weather / tail-risk book", or wants a strategy but has NOT named a specific one — and every discretionary mandate: "deploy whatever you think is profitable", "trade for me", "be aggressive", "put it to work", "you decide". A mandate is a strategy request even when it names no strategy and no coin; it is never answered with hand-picked raw positions. Surface the closest matching TEMPLATE first — the quick start to the user's OWN strategy (every template deploys as `<User>'s <Template>` — or a name of their own — as-is or with levers moved, after ops walks them through it) — passing their worldview as `--theme` to rank the closest fits; offer building one as a peer with its cost class, never a downsell. You talk and RANK; a hidden engine (scripts/discover.py) fetches data + filters. NOT for installing a NAMED strategy (that's senpi-strategy-ops), or building/designing one from scratch or with a custom DSL (that's senpi-strategy-author).
senpi-ai/senpi-strategy-discover
Build or edit a Senpi trading strategy — interactively, ONE decision at a time. There is no paper-trading mode: a strategy is tested with `senpi validate` and a $10-floor live run, never with a scanner re-run on a timer (a model call per firing). Use for "build a strategy", "create a strategy from scratch", "design a strategy", "I have a trading idea", or ANY strategy that needs DSL (a runtime-supervised exit: stop-loss, trailing stop, profit-lock ladder) — a runtime.yaml authored here is the ONLY way to carry a DSL; raw MCP strategy_create* / create_position calls cannot, and must never stand up a named or protected strategy. Offers the closest TEMPLATE first (via senpi-strategy-discover) as the quick start to the user's OWN strategy, with fork-before-deploy, bespoke edit and scratch as peers, each with its cost class; never asks for a budget to build (it is asked once, at deploy); exits default to letting winners run, stated in price at leverage; the user names what you build. NOT for installing (senpi-strategy-ops) or picking one to run (senpi-strategy-discover).
senpi-ai/senpi-strategy-author
Answer "where is smart money moving?" — show where the most-profitable Hyperliquid wallets are positioned, where they diverge from the crowd, and the near-term flow. Use for "where's smart money", "what are the whales doing", "smart money vs the crowd", "follow the smart money". Use this instead of stitching discovery_get_top_traders + leaderboard calls by hand. A hidden engine (scripts/smartmoney.py) builds the cohorts and finds the divergences; you analyze. Requires a USER-scoped Senpi token.
senpi-ai/senpi-smart-money
Surface non-obvious market developments on Hyperliquid — the read you can't get from a price screen. One on-demand script (scripts/sweep.py) reads the whole HL universe once — funding, open interest, the proven cohort's positioning against the 4h crowd, the platform's momentum events and cross-asset flows — and ranks what that single reading shows through TWO lenses: a **trade** lens (actionable edge, for users building ideas) and a **news** lens (surprising, non-obvious, for market-news content). Use for "scan Senpi Signals", "scan for market anomalies", "find what's mispriced", "where is the market wrong", "find dislocations", "what's out of line", "what's noteworthy in the market right now", "any interesting anomalies to tweet", "signals of the day", "build me some trade ideas", or a focused ask — "anything notable on OIL / the AI basket / trader 0x1234?". Every run ends with one question: set up a trade on a read, or a strategy that trades reads like these. On demand only: if asked to put it on a cron or any schedule, say no. The sweep is read-only, observation not advice, every number sourced. Requires a Senpi MCP token.
senpi-ai/senpi-signals
Analyze the user's portfolio, strategies, positions, and trades across all wallets — main embedded wallet, strategy sub-wallets, deployed vs idle — with real-time balances and real analysis, not a flat dump. Leads at the STRATEGY level: each strategy judged against its OWN mandate (is it doing its job?), with positions as evidence. Use this skill FIRST for ANY portfolio / strategies / positions / balances / PnL / trade-history question, BEFORE any raw strategy_get_clearinghouse_state / account_get_portfolio / strategy_list MCP call. Use for "analyze my strategies", "how are my strategies doing", "analyze my portfolio", "how am I doing", "show my positions", "balance across all wallets", "how much is idle", and "are my open positions protected? / do they have a stop-loss?", and "tell me about my strategies and their DSL / what tier are my positions in?", and "what happened to my closed [asset] position / did my trade actually go through / do I still hold X" — the authority for position facts, OPEN and CLOSED, which come from a fresh engine read, never from memory or a raw order response. A hidden engine (scripts/portfolio.py) does the multi-wallet pull and taxonomy; you narrate. Requires a USER-scoped Senpi token. Asked to SCORE, RATE or GRADE their trading — "score my trading", "rate my trading", "find leaks on my wallet" — run **quant-desk** on the wallets this skill just resolved; it returns a quant score, the six dimensions behind it and leaks priced in dollars. Everything else about holdings, strategies, positions and closed-position facts stays here.
senpi-ai/senpi-portfolio
Answer "what's happening in the markets today?" with structured cross-asset analysis, not just "BTC is up." Use for "what's moving", "market overview", "market update", "give me a read on today", or any open-ended market read. Use this instead of pulling market_get_prices + web_fetch/web_search by hand. A hidden engine (scripts/pulse.py) pulls all asset classes (crypto, equities, indices, commodities, macro) and computes the signals; you narrate. Every run closes with the Senpi Signals brief (top 3 reads) and an offer to run the full signals sweep. Requires Senpi MCP.
senpi-ai/senpi-market-pulse
Retrospective trade review + improvement coaching for the user's Senpi trading. Answers "did I sell too early or late", "what did I miss this week", "master my week", "compare my trades to the market / to the best whales", "how could I make more gains", "suggest improvements", "review my trades", "am I getting shaken out too early / how are my exits firing", "what did my own limits block / what couldn't I take", "where am I leaking", "walk me through / explain my [asset] trade", "what am I paying in fees / maker vs taker", "why is [strategy] losing". When the user has NOTHING to review yet, `meta.book_state` routes it: nothing deployed -> read the market (senpi-market-pulse) then shortlist a fit (senpi-strategy-discover); deployed-but-idle -> diagnose THAT strategy, never pitch another. A hidden engine (scripts/review.py) reconstructs every CLOSED trade from discovery, enriches each exit reason + blocked signals from the runtime telemetry event log, computes the honest "if I'd held to now" counterfactual, and crosses the book against what the market did — you narrate it under strict guardrails: process over outcome (lead with the aggregate, not the one reversal), it's the STRATEGY not the user, NO fabricated "+$X/week", no performance-chasing, honest sourcing (onchain facts = discovery, exit reason / blocked / leaks = telemetry), and the user chooses how deep the fix goes. Composes senpi-market-pulse (movers), senpi-smart-money (whales), and senpi-portfolio (live state). Requires a USER-scoped Senpi token.
senpi-ai/senpi-improve-trades
Handle ANY money-movement request — deposit, add funds, fund my account, "buy USDC", "pay with a card", withdraw, cash out, send, "send to my wallet / an exchange / a friend", transfer, "move my money", pay someone, bridge, get my private key. Two hard rails: money ENTERS Senpi only through the funding card — the agent shows it with show_widget (widget_type "fund_user_wallet"), which opens the app's Fund Your Wallet modal (deposit crypto to a network-scoped deposit address, or buy USDC with a card) — the agent NEVER writes a deposit address in chat and NEVER points at a strategy wallet; and money LEAVES Senpi to any EXTERNAL address only through the Senpi web/mobile app (Balances/Wallet) — no agent tool can send funds outside Senpi, by design, for the user's security. On-platform moves between the user's OWN wallets (strategy → funding wallet, spot → perps, close a strategy to reclaim funds) DO use tools — and this skill owns their mechanics: the perps precheck before a top-up, polling it, a FAILED top-up that parked the money in Spot (recover it, never loop), "withdraw everything" as the exact figure, and fees stated before money moves. Use this skill for every deposit / withdraw / transfer / send / top-up question. Pure guidance, no engine.
senpi-ai/senpi-deposit-withdraw-transfer
Show the user's standing across Senpi programs — points and rank, loyalty tier and fees, referral earnings — and explain the AI-credits usage meter. Use for "how many points do I have?", "what's my rank/tier?", "what are my fees?", "my referral rewards", and for credits: "what is the bubble/meter in the header?", "why are my credits going down?", "how much did that cost?", "does my strategy use credits?", "can I trade or withdraw my credits?", and for plans: "what plans are there?", "how much does Senpi cost?", "what do I get on Pro/Quant?", "how do I get free credits?", "where are my milestone credits?". Use this instead of calling user_get_senpi_points + get_loyalty_tiers one by one. A hidden engine (scripts/status.py) pulls points/loyalty/referral in one call; the credit BALANCE is explained, never read — no tool returns it — while the plan catalog and the free-credit ladder are published here and may be quoted. Requires a USER-scoped Senpi token.
senpi-ai/senpi-account-status
**Quant Desk** — the desk your **AI Quant** produces. Users reach it by either name, spaced or hyphenated: "run AI quant", "run ai-quant", "run quant", "run quant desk", "run quant-desk". Paste ANY Hyperliquid address (0x…) and get the desk — what the trader has actually been doing (a strategy read with a critique), a quant score with six explained dimensions, the market they are trading in right now and how they trade each regime, the live book with a protection audit, leaks priced as counterfactual dollars, their book against the PROVEN cohort (top traders by all-time realized P&L, ≥ $1M) and the HOT 30-day cohort — side, headcount, when they moved, what they hold that the trader doesn't — live matches where the tape, the cohorts and the trader's own pattern agree, and a bank of twelve follow-ups the quant is prepared to go deeper on. Works for wallets that never touched senpi (public onchain data, read-only); with a Senpi token the closed-trade history, both cohorts, the funding regime and the Hyperfeed attention layer come from Senpi's own data. TRIGGERS — any of these, with or without an address: "run AI quant", "run ai-quant", "run quant-desk", "run AI quant on my Hyperliquid wallet", "run AI quant on any Hyperliquid wallet", "run quant", "run the quant on 0x…", "run quant desk on 0x…", "score my trading", "rate my trading", "find leaks on my Hyperliquid wallet", "where am I leaking money", "what did I miss" (about a book, a week or a trade), "master my week", "analyze my wallet / my Hyperliquid address", "how am I doing", "what's my strategy", "am I on the right side of smart money", "are my positions protected", "what should I fix first", "compare me to the whales", "scout setups for me", "find traders for me to analyze with AI quant", "run AI quant on any Hyperliquid wallet". THE IN-PRODUCT SUGGESTED PROMPTS, verbatim — these are buttons users click, so they must match exactly, in the product's own second person ("your wallet", not "my wallet"): "Run quant desk on your Hyperliquid wallet", "Run quant desk on any Hyperliquid wallet", "Score my trading", "Find leaks on your Hyperliquid wallet", "Find traders for me to analyze with quant desk", "Run quant desk", "What did I miss?". Note "find traders for me to analyze" ALONE belongs to senpi-trader-research (vetting a trader to COPY); with "quant desk" or "AI quant" it is this skill (reading a trader to LEARN from). "your Hyperliquid wallet" in a suggested prompt means the READER's own wallet — ask for their address and run the own-book desk, never someone else's. PLURAL COUNTS, and it is what a senpi user reaches for first, because they HAVE several: "find leaks on my wallets", "score my wallets", "run quant desk on my wallets", "leaks across my wallets". senpi-portfolio owns "across all wallets" for HOLDINGS; the leaks and the score on those same wallets are THIS skill. A teammate's agent read portfolio's SKILL.md first on "find leaks on my wallets" and only reached the desk forty-five seconds later. No address given? `desk.py --find <band>` offers candidates by account size ($5k-10k through whales) and by this week's winners, the month's, or this week's worst — ask which, never guess an address and never answer from memory. The default is the user's OWN book: "run AI quant on 0x…" means the user is 0x… — the desk speaks to them and recommends their next steps. "Run AI quant analyst on 0x…" (or "review this trader 0x…") means the user is analyzing someone else. Hidden engine: scripts/desk.py. NOT for choosing or deploying a strategy (senpi-strategy-discover / -ops), reviewing a Senpi strategy's own trades (senpi-improve-trades), or vetting a trader to copy (senpi-trader-research). senpi-portfolio resolves the reader's wallets and answers what they hold; a request to SCORE or RATE that trading comes here, on those wallets.
senpi-ai/quant-desk