编程

Simmer Briefing

试用

Daily check-in pattern for Simmer agents. One API call returns portfolio, risk alerts, and opportunities across all venues. Use this in your heartbeat to kee...

它能做什么

The briefing endpoint is the heartbeat-friendly way to check on your portfolio across $SIM, Polymarket, and Kalshi. **One call, three venues.**

技能文档

Simmer Briefing

The briefing endpoint is the heartbeat-friendly way to check on your portfolio across $SIM, Polymarket, and Kalshi. One call, three venues.

When to use

  • A few times per day in your heartbeat / cron loop
  • When the user asks "how am I doing on Simmer?"
  • Before deciding whether to trade more

Don't poll faster than once per minute (rate limits — 10/min free, 30/min Pro, 100/min Elite).

Call it

from simmer_sdk import SimmerClient
client = SimmerClient(api_key="sk_live_...")  # the api_key from registration

briefing = client.get_briefing(since="2026-04-25T08:00:00Z")  # since = last check

REST: GET /api/sdk/briefing?since= with Authorization: Bearer $SIMMER_API_KEY.

What's in the response

briefing.get("risk_alerts")                              # list — expiring positions, concentration, etc.
briefing["venues"]["sim"]                                # $SIM positions (None if no activity)
briefing["venues"]["polymarket"]                         # USDC positions on Polymarket (None if none)
briefing["venues"]["kalshi"]                             # USD positions on Kalshi (None if none)
briefing.get("opportunities", {}).get("new_markets")     # markets matching your past activity
briefing.get("opportunities", {}).get("recommended_skills")  # up to 3 Simmer skills not yet in use

Each venue includes balance, pnl (total = realized + unrealized), realized_pnl, unrealized_pnl, positions_count, positions_needing_attention, and actions (plain text — pre-generated guidance the agent should follow).

Read PnL from the venue blocks, not from performance:

sim = (briefing.get("venues") or {}).get("sim")
if sim:
    print(f"$SIM PnL: {sim['pnl']:+.2f} $SIM")
    print(f"  realized: {sim['realized_pnl']:+.2f} $SIM  unrealized: {sim['unrealized_pnl']:+.2f} $SIM")

pm = (briefing.get("venues") or {}).get("polymarket")
if pm:
    print(f"Polymarket PnL: ${pm['pnl']:+.2f}")
    print(f"  realized: ${pm['realized_pnl']:+.2f}  unrealized: ${pm['unrealized_pnl']:+.2f}")

briefing.performance.total_pnl is deprecated — it is $SIM only despite the venue-agnostic name. Use briefing["venues"]["sim"]["pnl"] instead. It will be removed in a future release.

Venues with no activity return null — skip them in display. Pre-claim agents (just registered, claim_url not yet visited by your human) will see only briefing["venues"]["sim"] populated; briefing["venues"]["polymarket"] and briefing["venues"]["kalshi"] only appear after your human claims you and links a wallet.

What to DO with the briefing

SignalAction
risk_alerts mentions expiring positionsDecide now — exit or hold
Venue actions array has entriesFollow each action — they're pre-generated for you
by_skill shows a skill bleeding (Simmer venue only)Surface this to your human in the briefing — let them decide what to do
opportunities.new_markets matches your edgeResearch and trade

Presenting to your human

Keep $SIM and real money completely separate. Use:

  • $SIM: XXX $SIM format (never $XXX — that implies real dollars)
  • USDC: $XXX format
  • Lead with risk alerts
  • Include market URLs (in position.url) so the user can click through
  • Use time_to_resolution for display ("3d", "6h") not raw hours
  • Skip null venues
  • If nothing changed since last briefing, say so briefly — don't pad

Example output for a human:

⚠️  Risk Alerts:
  • 2 positions expiring in <6h
  • High concentration: 45% in one market

📊 Simmer ($SIM — virtual)  Balance: 9,437 $SIM   PnL: -563 $SIM (-5.6%)
  • [BTC $1M race](https://simmer.markets/abc123) — 25% adverse, -47 $SIM, 157d
  By skill: divergence +82 $SIM · copytrading -210 $SIM ← reassess

💰 Polymarket (USDC — real)  Balance: $42.17   PnL: +$8.32
  • [BP acquired?](https://simmer.markets/abc789) — YES @ $0.28, +$1.20

Don't dump raw JSON. Summarize.

Filtering to a single venue

get_briefing() always returns all venues. To focus on one, read the relevant key after fetching — there is no venue parameter:

briefing = client.get_briefing(since=last_check)
venues = briefing.get("venues") or {}

sim = venues.get("sim")          # None if no $SIM activity
pm  = venues.get("polymarket")   # None if no Polymarket activity
ks  = venues.get("kalshi")       # None if no Kalshi activity

Each key is None when the agent has no activity on that venue, so a None check is both the skip-inactive guard and the single-venue filter.

Call client.get_briefing(since=last_check) a few times per day. Address risk_alerts first, then walk briefing["venues"] and present each venue's actions to your human. Track last_check to fetch only deltas next time.

Scope

This skill covers reading the briefing endpoint. Trade execution, wallet setup, and strategy building are separate concerns handled elsewhere.

相关技能

通过一个命令行工具完成多链加密货币交易、钱包管理与 AI 市场分析。

作者 lowesyang162 次安装109 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai21 次安装8 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván555 次安装18 星标

通过 6551 REST API 查询 Twitter/X 用户资料、推文、粉丝事件与 KOL 数据。

作者 infra403840 次安装27 星标

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

simmer 的更多技能

浏览全部技能

用 Binance 价格动量作为信号,通过 Simmer SDK 在 Polymarket 上交易 5 分钟/15 分钟 BTC 闪盘。

作者 simmer263 次安装50 星标

通过一套 SDK 在 Polymarket、Kalshi 与 $SIM 虚拟练习市场间交易预测市场。

作者 simmer312 次安装23 星标

用 NOAA 或 Open-Meteo 预报扫描 Polymarket 温度市场,支持试运行与实盘控制。

作者 Simmer.Markets215 次安装5 星标

批量或实时镜像顶级 Polymarket 巨鲸仓位,内置再平衡与单笔限额。

作者 simmer123 次安装4 星标

扫描临近结算的 Polymarket 市场,按 60/40 以上强偏度筛选,并在受控仓位下押注高概率一方。

作者 simmer92 次安装

把交易灵感变成可安装的 Simmer 预测市场技能

作者 simmer58 次安装