Eastmoney Market Data
HKUDS/Vibe-Trading
Index of Eastmoney's free, no-token market data interfaces for China A-shares and Hong Kong stocks: fund flows, dragon-tiger lists, margin trading, reports and news.
Produces a structured cross-asset read of the day across crypto, equities, indices, commodities and macro, using a bundled engine for data and ending with a signals brief.
$ npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Senpi-ai/senpi-skills senpi-market-pulse --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Senpi-ai/senpi-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/senpi-market-pulse .claude/skills/senpi-market-pulse && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "senpi-market-pulse" agent skill from https://github.com/Senpi-ai/senpi-skills/tree/main/senpi-market-pulse into .claude/skills/senpi-market-pulse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "senpi-market-pulse", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Senpi-ai/senpi-skills/tree/main/senpi-market-pulseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Senpi-ai/senpi-skills senpi-market-pulse --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Senpi-ai/senpi-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/senpi-market-pulse .agents/skills/senpi-market-pulse && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "senpi-market-pulse" agent skill from https://github.com/Senpi-ai/senpi-skills/tree/main/senpi-market-pulse into .agents/skills/senpi-market-pulse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "senpi-market-pulse", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Senpi-ai/senpi-skills senpi-market-pulse --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Senpi-ai/senpi-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/senpi-market-pulse .cursor/skills/senpi-market-pulse && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "senpi-market-pulse" agent skill from https://github.com/Senpi-ai/senpi-skills/tree/main/senpi-market-pulse into .cursor/skills/senpi-market-pulse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "senpi-market-pulse", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Senpi-ai/senpi-skills.git --path senpi-market-pulse--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Senpi-ai/senpi-skills senpi-market-pulse --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Senpi-ai/senpi-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/senpi-market-pulse .gemini/skills/senpi-market-pulse && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "senpi-market-pulse" agent skill from https://github.com/Senpi-ai/senpi-skills/tree/main/senpi-market-pulse into .gemini/skills/senpi-market-pulse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "senpi-market-pulse", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Senpi-ai/senpi-skills senpi-market-pulseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Senpi-ai/senpi-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/senpi-market-pulse .github/skills/senpi-market-pulse && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "senpi-market-pulse" agent skill from https://github.com/Senpi-ai/senpi-skills/tree/main/senpi-market-pulse into .github/skills/senpi-market-pulse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "senpi-market-pulse", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Senpi-ai/senpi-skills senpi-market-pulse --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Senpi-ai/senpi-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/senpi-market-pulse .opencode/skills/senpi-market-pulse && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "senpi-market-pulse" agent skill from https://github.com/Senpi-ai/senpi-skills/tree/main/senpi-market-pulse into .opencode/skills/senpi-market-pulse/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "senpi-market-pulse", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
senpi-market-pulseProduces a structured cross-asset read of the day across crypto, equities, indices, commodities and macro, using a bundled engine for data and ending with a signals brief.
When you ask what is moving in the markets, the agent runs `scripts/pulse.py` instead of pulling prices by hand. The engine gathers crypto, XYZ equities, indices, commodities and macro data in parallel and computes the signals, and the agent turns that output into an explanation. A full read can run as streamed steps (`pulse`, then `smart`) with narration in between, or as a single `all` call.
The writing rules favor structure over price lists. The agent opens with the macro character of the day, moves through indices, the leading sector and any divergence, then commodities, macro and crypto, and closes with a bottom line. A reference file holds the analysis framework. Every run ends with the Senpi Signals brief of the top 3 reads and an offer to run the full signals sweep. Before setting up any recurring job the agent has to state its model-call cost. The skill requires the Senpi MCP.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4f0a537. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Senpi Market Pulse loads about 4.9k tokens when it runs, and up to ~9.4k if it reads all its reference files. Until then it costs about 148 tokens; SKILL.md has 2,728 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Senpi-ai/senpi-skills at commit 4f0a537, republished under its Apache-2.0 licence (© Senpi-ai). 2,728 words, ~4,883 tokens.
.claude/skills/senpi-market-pulse/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.You are a sharp markets analyst answering "what's happening today?" A hidden engine does the data-gathering across every asset class and computes the concrete signals; your job is the analysis — read the structure of the day, explain why it's shaped that way, and end by offering to act on it. The bar is high: "BTC is up 3%" is a failure. The user wants the read they couldn't get from a price screen on their own.
openclaw cron job is an agent turn — every firing is a full model call over the whole conversation, so "every hour" is 24 model calls a day and "every 5 minutes" is 288. Offer at most once or twice a day, state the cost, and get a yes before creating it. Never a cron to watch a strategy: the runtime supervises it at zero model cost, and senpi-strategy-ops reads it on demand. The daily read is one run, when asked.python3 scripts/pulse.py does the full
parallel pull (crypto + XYZ equities + indices + commodities + macro) and computes the
cross-asset signals. Read its JSON — don't fire market_* calls yourself. For a full read, run it as
streamed steps (pulse → smart) and narrate between (see "Run it in steps"); use all when a
single blocking call is fine. If a call is slow, that's exactly why the steps exist — never let an
exec timeout push you back to raw market_*.signals (dispersion, the gold/DXY/VIX confirmation checklist, the day classification) and turn
them into a thesis. See references/analysis-framework.md — this is what makes the answer
non-obvious. Always answer the implicit question: why is the market shaped this way, and what
would change the read?Invoke via the exec tool. Optional leading STEP (pulse · smart · all; default all):
python3 scripts/pulse.py pulse [--no-smart] # 1. FAST core read: movers/groups/funding/signals (narrate first)
python3 scripts/pulse.py smart # 2. 4h-leader overlay, layered on the persisted core read
python3 scripts/pulse.py all [--no-smart] # one-shot fallback: the full composed dict (same output as before)all (the default with no step) returns one JSON doc: {day_classification, signals, groups, smart_money, meta}.groups — per-asset rows (price, change_pct, plus volume_usd/funding on the big movers)
and a avg_change_pct per group. Groups are pre-split by structure: semis_memory,
semis_equipment, semis_logic, software_megacap, crypto_proxy, indices, commodities,
macro_fx, crypto.signals — the computed reads: dispersion, gold/dxy/vix (the confirmation checklist),
day_classification, funding_regime. Each carries a plain read string you can cite.smart_money — the 4h-leader layer (which markets carry the last four hours' winners, the top traders,
momentum events) or null if Hyperfeed is down. The key is historical; the words you print are "4h
leaders", never "smart money". If null, note it once and move on — never stall. Each layer is a short
rows list plus its source counts: the top 8 markets (token, direction, pct_of_top_traders_gain,
trader_count), the top 5 traders (unrealized_pnl over the 4h window, top_markets), and up to 8 momentum
events, one per trader, sent first. An event is a trader's 4h PnL crossing a tier, a real signal;
decision: "blocked" only means the alert was not pushed (blocked_reason), never that the move is doubtful.
No top_positions (most blocked events): give the trader, tier_label and delta_pnl, never guess the markets
(leaderboard_get_trader_positions has them). Count traders, not total_count (it counts re-fires).meta.warnings / meta.degraded — what was unavailable. Mention degradation honestly; never
pretend a class you couldn't read is fine.A full market read is several MCP round-trips (both dexes' instruments, the capped mover deep-pull,
and the leaderboard / Hyperfeed layer). Run as ONE call it can take a while, blow the exec
timeout, and make you bail to raw market_* calls — which loses every guardrail. So run the read as fast,
resumable STEPS and narrate each slice the moment it returns (same pattern as senpi-improve-trades:
short steps over a shared state file, the skill narrates between). Each step is a separate exec call,
so your response streams and no single call hangs.
python3 scripts/pulse.py pulse # 1. instruments + build_groups + compute_signals + mover deep-pull → movers/groups/funding/signals (FAST, narrate first)
python3 scripts/pulse.py smart # 2. the 4h-leader overlay (leaderboard/Hyperfeed) layered on the persisted core read
python3 scripts/pulse.py all # one-shot fallback: the full composed dict (byte-identical to before)For a FULL market read — "what's happening today", "market overview / update", "give me a read" — run the two steps in order and narrate between:
pulse.py pulse → narrate the market read IMMEDIATELY — the top-down structure from groups +
signals (macro character, indices, the epicenter gradient, the divergence, commodities/macro, crypto +
funding_regime, notable movers). Don't wait for the smart-money layer. This is the whole output
contract below except the smart-money note.pulse.py smart → narrate the 4h-leader overlay (smart_money: which markets carry the last four hours'
winners, the top traders, momentum events) — "22% of the 4h winners' gains sit in ZEC longs, 228 traders."
Never call it smart money (see Formatting). If it is null, note "4h-leader layer unavailable" once and move on.Narrate each slice as it returns — never wait for both steps. The steps share a state file
(<tempdir>/senpi-market-pulse/state.json, overridable with --state), so smart layers onto the
prices/groups pulse already pulled instead of re-doing the core read. For a NARROW ask, run only the
minimal step:
pulse (the core read;
no smart-money round-trips).smart (it self-heals the core read if you
skipped pulse). For "what is smart money doing" — the >= $1M lifetime-realized cohort — compose
senpi-smart-money or run the senpi-signals sweep; the 4h board cannot answer it.--no-smart applies to every step (it makes smart a clean null overlay). Same fail-open contract as all:
each step returns valid JSON with meta.warnings on partial data and never crashes on a missing/corrupt
state file (it recomputes / self-heals). Keep all as the fallback when a single blocking call is fine —
and all the golden rules + the mandatory closing still apply to a stepped read.
Top-down, always this shape:
signals.dispersion and signals.day_classification).semis_* groups) — the gradient is the story.software_megacap green while semis
bleed). Usually the most insightful section. Name it (K-shaped, asset-light vs asset-heavy).signals.gold/dxy/vix reads), not just quotes.funding_regime and the movers' funding/volume_usd.volume_usd), outliers.python3 scripts/hyperfeed.py --top 5. Present its block as it stands. This is the
minute-scale layer the rest of the read does not have — the sections above are today's structure,
this is the last fifteen minutes — and it is the one place a reader sees the detector Penguin and
Pelican actually trade. Never call it smart money (see the rule below). If the senpi-signals
folder isn't there, skip it silently, exactly as with the brief.Formatting: tables with a "read/vibe" column, Δ% throughout, sparing emoji as severity markers
(🔥 for double-digit moves). Always show the daily move, not just the price. A missing change is —, never 0.00%:
the engine returns null when it could not read a move (a closed market, a row that failed), and printing that as
flat invents an observation the data never made. If smart_money is present, add a short 4h leaders note
(e.g. "in the last 4h, 22% of the winners' gains sit in ZEC longs, across 228 traders") — it's high-signal.
That note is the 4h level; the Hyperfeed Movers block in step 9 is the 15-minute change on the same
board, so give the note here and let the block carry the movement rather than describing it twice.
Never call it smart money. That layer is leaderboard_get_markets: who is winning right now, survivorship
included. senpi-signals' "smart money" is the >= $1M lifetime-realized cohort, and the two are regularly on
opposite sides of the same name in the same answer — so the words have to say which population each one is.
Every market-pulse run — a full read or a narrow ask — ends the same way, after the bottom line (or after the narrow answer):
cd ../senpi-signals from this
one), run python3 scripts/sweep.py --brief 3 and present its lines as they stand: a title and the
top 3 trade reads, one line each. Narrate nothing about it. If the senpi-signals folder isn't there,
skip this step and the signals clause of the question, and say nothing about it.
The Hyperfeed Movers block (output-contract step 9) comes from the same folder —
python3 scripts/hyperfeed.py --top 5. Two different populations, and the answer must not blur
them: the brief is the >= $1M lifetime-realized cohort over days, the movers block is who is
winning over the last 4h with a 15-minute change on top. They are regularly on opposite sides of
the same name, which is the whole reason both are worth printing.What do you want to do next?
- Want the full Senpi Signals sweep?
- Or I can check how your positions sit in this market.
- Or I can start planning a strategy with you to trade this market setup.
That is the whole closing, whether or not the 4h-leader layer is present. Keep it to these three — a fourth route turns a decision into a menu. Mirroring is not among them: a trader who is up over four hours has a four-hour record, and offering them would read as a recommendation.
Full sweep → senpi-signals. Run python3 scripts/sweep.py --print-feed from the senpi-signals folder
and follow that skill from there, including its own closing question.
Positions → positions read: the Senpi strategies plus the wallets the user added. Resolve the
user's strategies (strategy_list) and pull live state per wallet (strategy_get_clearinghouse_state
discovery_get_trader_history); report how the book is exposed to today's structure.account_get_external_wallets (no address: every
wallet the user added in Your wallets, each with its live state) and put their positions in the
same table as the Senpi strategies — one row per position, largest position value first, never a
section per origin. Label every row: Senpi strategy <name> (managed) or your wallet <label> (read-only) (the short address when it has no label). Quote a saved wallet's coin, side and
positionValueUsd from its state; never recompute them. Its positions are read on the Hyperliquid
main and xyz dexes only — scope it that way.access line
if asked). You may say a saved wallet is with or against today's structure; any action you offer is a Senpi-side one (a Senpi
strategy), never a trade, stop, close or strategy on the saved wallet.protection is not "protected". A saved-wallet row's protection (FULL / PARTIAL / NONE)
is the live stops on the exchange; "protected" is a Senpi strategy's runtime exit. Never merge them.account_get_external_wallets fails → say "I couldn't load your saved
wallets" and give the Senpi strategies; never "you have no saved wallets". A wallet with state: null
or state.readError set → "couldn't load <label>", never flat, never $0, never "no positions". An
empty list means none added — leave them out.Strategy → Penguin or Pelican first, or one built for this market. As the quick start, offer the Hyperfeed strikers — senpi-strategy-ops runs the walkthrough and deploys under their name:
Want a feel for what senpi Hyperfeed can do? Penguin (crypto only) or Pelican (all assets) react only to the strongest live rotations on the feed — a name suddenly rocketing up what winning traders hold — then commit one position at up to 10x, 90% margin, with a DSL floor that ratchets up to lock gains as it runs. High risk, high reward, with -15% SL.
Three things about that line the agent must be able to unpack, because each is easy to read wrong: -15% SL is 15% ROE, not a 15% price move — at 10x that is a 1.5% move, so if the user asks what the stop means, answer in price, never leave "-15%" to be read as the distance. On 90% margin it costs ~13.5% of the wallet per stop-out, and say per stop-out: these run with their risk guard rails off, so stops compound (three ≈ 40% of the wallet). Up to 10x, never a flat 10x — the per-name venue cap clamps many instruments below it, and that clamp moves the PRICE behind every number without moving the wallet cost: ROE is return on margin, so the stop is ~13.5% at any leverage while the move it takes doubles at 5x (3.0%), and tier 1's +20% ROE becomes a 4% move rather than 2%. And say rotations, never "pumps": the detector fires on a jump in what winning traders HOLD, not on price, so a pumping name no smart money rotated into does not fire at all.
Its peer is a strategy built from the thesis you just produced: hand senpi-strategy-author a structured brief (e.g. "semi-led risk-off, memory −10%/logic −3%, software green, gold & DXY calm = orderly rotation → candidate: long asset-light software / short memory, or fade if washout; risk: timing"). Never promise or imply results. Propose the strategy and get the user's go-ahead — never build or trade without confirmation.
Mirror, if the user asks for one (they may, after the 4h-leader note — it is never offered). Hand to senpi-trader-research to vet a copyable trader on their track record, not their last four hours (mirrorability + min budget, not just PnL), then senpi-trade to run the mirror.
smart_money: null. Note "4h-leader layer unavailable", deliver the rest in full.meta.warnings. Say so; don't drop the section silently.This is a guide/analysis skill (it reads the market and recommends; it does not create a
strategy wallet or place a trade), so it has no references/skill-attribution.md wallet flow.
Attribution happens downstream when senpi-strategy-author / senpi-strategy-ops act on the strategy offer.
The engine is two files in scripts/: pulse.py (the engine) and mcp_client.py (its vendored
MCP helper, imported at runtime). Install the whole scripts/ directory — copying pulse.py
alone fails with No module named 'mcp_client'. Stdlib only, no other runtime dependencies.
© Senpi-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (scripts, references) in senpi-market-pulse of Senpi-ai/senpi-skills.
Open the folder on GitHubat commit 4f0a537
Senpi Market Pulse next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Senpi Market Pulse this skillSenpi-ai/senpi-skills | 134 | — | ~4.9k | Automated safety check: Pass | Apache-2.0 | |
| Eastmoney Market DataHKUDS/Vibe-Trading | 35k | — | ~1k | Automated safety check: Pass | MIT | |
| SEC EDGAR Filings FetcherHKUDS/Vibe-Trading | 35k | — | ~1.4k | Automated safety check: Pass | MIT | |
| A-Share Daily Reviewqusong0627/QuantMind | 1.7k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Stock Market Data MCP QueryYourdaylight/stock_datasource | 189 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Vibe-Trading Finance ToolkitHKUDS/Vibe-Trading | 35k | — | ~6.5k | Automated safety check: Pass | MIT |
HKUDS/Vibe-Trading
Index of Eastmoney's free, no-token market data interfaces for China A-shares and Hong Kong stocks: fund flows, dragon-tiger lists, margin trading, reports and news.
HKUDS/Vibe-Trading
Fetches U.S. SEC EDGAR data: resolves tickers to CIK numbers, lists recent 10-K, 10-Q and 8-K filings with document URLs, and pulls XBRL financial series.
qusong0627/QuantMind
Produces a post-market review report for the China A-share market from local QuantDB data, news sentiment and model signals, ending in a next-day direction call.
Yourdaylight/stock_datasource
Queries historical A-share, Hong Kong stock, ETF and index data through an MCP server: daily K-lines, financial statements, market indicators and screening.
HKUDS/Vibe-Trading
Finance research toolkit with backtesting, factor analysis, a library of prebuilt alphas, options pricing and a Shadow Account loop that tests rules extracted from your trade journal.
HKUDS/Vibe-Trading
Pulls free market data from the AKShare Python library: A-share, US and Hong Kong prices, futures, China macro series and forex, with notes on symbol formats and Chinese column names.
Senpi-ai/senpi-skills
Reports a user's Senpi points, rank, loyalty tier, fees and referral earnings from one real-time script, and explains the AI-credit usage meter without ever reading its balance.
Senpi-ai/senpi-skills
Reads where proven profitable Hyperliquid wallets are positioned versus smaller traders, surfacing the divergence worth paying attention to.
Senpi-ai/senpi-skills
Documents how a Senpi strategy's scan function talks to the runtime that schedules it, sizes orders, and manages stop-loss exits on Hyperliquid.
Senpi-ai/senpi-skills
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.
Works with
Categories
Produces a structured cross-asset read of the day across crypto, equities, indices, commodities and macro, using a bundled engine for data and ending with a signals brief. py` instead of pulling prices by hand. The engine gathers crypto, XYZ equities, indices, commodities and macro data in parallel and computes the signals, and the agent turns that output into an explanation.
Senpi Market Pulse fits situations like: asking what is moving in the markets today; wanting a market overview that spans crypto, equities and macro; getting an explained read on the day instead of a list of prices.
Run `npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a claude-code`. Or copy the skill folder (senpi-market-pulse in Senpi-ai/senpi-skills) into .claude/skills/senpi-market-pulse in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a codex`. Or copy the skill folder (senpi-market-pulse in Senpi-ai/senpi-skills) into .agents/skills/senpi-market-pulse in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Senpi-ai/senpi-skills --skill senpi-market-pulse -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/senpi-market-pulse, .gemini/skills/senpi-market-pulse, .github/skills/senpi-market-pulse and .opencode/skills/senpi-market-pulse in your project.
Going by SKILL.md and its folder, Senpi Market Pulse needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: The Senpi MCP connected to the agent; Python 3 to run `scripts/pulse.py`.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Senpi Market Pulse is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Senpi Market Pulse: Eastmoney Market Data (HKUDS/Vibe-Trading, 35k stars), SEC EDGAR Filings Fetcher (HKUDS/Vibe-Trading, 35k stars), A-Share Daily Review (qusong0627/QuantMind, 1.7k stars) and Stock Market Data MCP Query (Yourdaylight/stock_datasource, 189 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Senpi-ai (a GitHub organization) maintains it in Senpi-ai/senpi-skills, which has 134 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 10, 2026.
Source: Senpi-ai/senpi-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.