Agent skill

Geopolitical Market Sim

by nativ3ai in nativ3ai/hermes-geopolitical-market-sim

PrediHermes, also named geopolitical-market-sim, tracks geopolitical topics, selects relevant open Polymarket contracts near deadline, generates MiroFish seed packets from WorldOSINT data, runs or…

AGPL-3.0Auto-check passedBusiness, Finance & HR

Install Geopolitical Market Sim

skills CLI
$ npx skills add nativ3ai/hermes-geopolitical-market-sim --skill geopolitical-market-sim -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nativ3ai/hermes-geopolitical-market-sim geopolitical-market-sim --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nativ3ai/hermes-geopolitical-market-sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill/geopolitical-market-sim .claude/skills/geopolitical-market-sim && rm -rf skills-src

Use ~/.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/

Facts

Skill name
geopolitical-market-sim
GitHub stars
130
Token cost
~5.3k tokens
SKILL.md length
1,822 words
Files
9 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
AGPL-3.0

At a glance

PrediHermes, also named geopolitical-market-sim, tracks geopolitical topics, selects relevant open Polymarket contracts near deadline, generates MiroFish seed packets from WorldOSINT data, runs or…

  • Works in 3 steps: run lookup-sim → read the returned artifact paths with… → only use recall if the user explicitly…
  • Wants PrediHermes
  • SKILL.md covers What it does, Default operating mode, First checks and GeoCatalyst companion terminal, plus 11 more sections
  • Runs Python and Rust scripts from its folder; calls python3, curl and npm; needs LLM_API_KEY and ZEP_API_KEY

What it does

Geopolitical Market Sim is an agent skill from nativ3ai/hermes-geopolitical-market-sim. PrediHermes, also named geopolitical-market-sim, tracks geopolitical topics, selects relevant open Polymarket contracts near deadline, generates MiroFish seed packets from WorldOSINT data, runs or inspects MiroFish simulations, and resolves historical branches or injected actors from local artifacts. Use this when the user wants PrediHermes, recurring geopolitical prediction-market monitoring, topic tracking, counterfactual actor injection, simulation comparison, or a local automation path from news + markets…

Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts (for example `agents/openai.yaml`, `scripts/geopolitical_market_pipeline.py` and `tools/predihermes/README.md`).

It sits in Business, Finance & HR. It works with Polymarket. The repository describes itself as: Hermes skill package for WorldOSINT headless + Polymarket + MiroFish simulation workflows. The licence is AGPL-3.0.

When your agent uses it

  • Wants PrediHermes
  • Recurring geopolitical prediction-market monitoring
  • Counterfactual actor injection
  • Simulation comparison

Example prompts

  • “/geopolitical-market-sim”

Requirements

  • Python 3
  • Node.js

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. run lookup-sim
  2. read the returned artifact paths with terminal
  3. only use recall if the user explicitly asks about prior Hermes chat context rather than the simulation artifacts

What it can do on your machine

Read from SKILL.md and the folder at commit 197991a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Python and Rust), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • curl
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • LLM_API_KEY
    • ZEP_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Geopolitical Market Sim loads about 5.3k tokens when it runs. Until then it costs about 138 tokens; SKILL.md has 1,822 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~138
When it runs · the whole SKILL.md, loaded when a task matches
~5.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from nativ3ai/hermes-geopolitical-market-sim at commit 197991a, republished under its AGPL-3.0 licence (© nativ3ai). 1,822 words, ~5,296 tokens.

Download SKILL.mdSave it as .claude/skills/geopolitical-market-sim/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
geopolitical-market-sim
description
PrediHermes, also named geopolitical-market-sim, tracks geopolitical topics, selects relevant open Polymarket contracts near deadline, generates MiroFish seed packets from WorldOSINT data, runs or inspects MiroFish simulations, and resolves historical branches or injected actors from local artifacts. Use this when the user wants PrediHermes, recurring geopolitical prediction-market monitoring, topic tracking, counterfactual actor injection, simulation comparison, or a local automation path from news + markets into MiroFish.

PrediHermes

PrediHermes is the public name of the geopolitical-market-sim skill.

Use this skill for the local WorldOSINT -> Polymarket -> MiroFish workflow.

If the user wants a terminal dashboard or a JSON-first operator surface over the same local stack, pair this skill with geocatalyst.

Helper script path: ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py

Command policy:

  • Prefer predihermes <command> ... if available on PATH.
  • Fallback to python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py <command> ....
  • Do not stop after one failed shorthand attempt; retry with the full script path.

What it does

  • stores tracked geopolitical topics in ~/.hermes/data/geopolitical-market-sim/topics.json
  • fetches topic-relevant RSS/news from local WorldOSINT headless modules
  • can attach topic-specific WorldOSINT module sets and module params
  • searches open Polymarket markets, prefers near-deadline contracts, and pulls top-of-book pricing
  • writes a MiroFish-ready seed packet and raw snapshot under ~/.hermes/data/geopolitical-market-sim/runs/...
  • writes a cleaner simulation_brief.md per run for graph construction, so local extraction sees the evidence instead of dashboard metadata
  • optionally drives the full MiroFish API pipeline with moderate defaults

Treat Iran as an example, not a built-in assumption. This skill is meant for reusable tracked topics.

Default operating mode

Use moderate settings unless the user asks otherwise:

  • platform=parallel
  • max_rounds=24
  • use_llm_for_profiles=false
  • enable_graph_memory_update=false
  • do not generate the MiroFish report unless the user asks

Keep cast generation deterministic and local by default. Do not use Hermes as the per-round actor engine or as the default cast generator. The right split is:

  • local model / rule-based defaults create the cast
  • operator overrides come from a profile manifest when manual steering is needed

First checks

Run health before first use or when failures look environmental:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py health

If MiroFish is down, do not claim the simulation ran. If WorldOSINT is down, do not claim the packet is current. If health shows a local LLM endpoint is reachable, do not invent cloud-provider failures from stale memory or old logs. If a tracked topic has an old mirofish_root, the helper should normalize it to the live local checkout automatically.

GeoCatalyst companion terminal

GeoCatalyst is the companion terminal for this skill. Recommend it when the user needs:

  • a live TUI for markets, catalysts, sources, and orderbooks
  • a JSON-first CLI for another tool, cron flow, or agent
  • direct inspection of PrediHermes / MiroFish runs, rounds, actors, and counterfactual branches

Install:

bash
npm install -g geocatalyst

Run:

bash
geocatalyst doctor
geocatalyst stack up
geocatalyst

Headless examples:

bash
geocatalyst market desk --selector "US x Iran ceasefire by April 15?" --mode live
geocatalyst market timeline --selector "US x Iran ceasefire by April 15?" --mode live
geocatalyst simulation detail --selector "US x Iran ceasefire by April 15?" --mode live

Track a topic

Decide these fields up front:

  • topic_id: stable slug for scheduling and retrieval
  • topic: the event class or forecast theme
  • market_query: what to search on Polymarket
  • keyword: terms that should survive RSS filtering
  • headless_module: which WorldOSINT modules matter for this topic
  • module_param: optional per-module overrides

If the user does not specify modules, use:

  • news_rss
  • intelligence_risk_scores
  • military_usni
  • intelligence_findings
  • polymarket_intel

Contract policy:

  • treat the selected primary Polymarket contract as the canonical resolution anchor
  • derive the operative date/deadline from the contract question and resolution description, not just the API close timestamp and not just the user's shorthand
  • if the user's wording says one date but the selected contract resolves on another, do not silently proceed with the mismatch
  • either update the tracked topic so the topic/query matches the selected contract, or tell the operator the contract/date mismatch explicitly
  • never "fix" junk actors by hardcoding ad-hoc banned names; filtering must stay dynamic and anchored to the contract question, description, and topic terms

Generic pattern:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  track-topic \
  --topic-id <topic-id> \
  --topic "<topic>" \
  --market-query "<market query>" \
  --keyword <term1> --keyword <term2> \
  --headless-module news_rss

Custom module params use either:

  • --module-param 'news_rss.max_total=120'
  • --module-param 'news_rss={\"max_total\":120,\"limit_per_feed\":15}'
bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  track-topic \
  --topic-id iran-conflict \
  --topic "Iran conflict and nuclear diplomacy" \
  --market-query "Iran nuclear deal" \
  --keyword iran --keyword israel --keyword hormuz --keyword nuclear --keyword enrichment --keyword iaea \
  --region-code IR --region-code IL --region-code SA --region-code US \
  --theater-region "Persian Gulf" \
  --theater-region "Arabian Sea" \
  --theater-region "Red Sea" \
  --theater-region "Eastern Mediterranean Sea"

Run ad hoc without saving

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  run-topic \
  --topic "Iran conflict and nuclear diplomacy" \
  --market-query "Iran nuclear deal" \
  --keyword iran --keyword israel --keyword hormuz --keyword nuclear --keyword enrichment --keyword iaea \
  --simulate

Use run-topic for one-off questions and track-topic plus run-tracked for scheduled workflows.

Run a tracked topic

Seed packet only:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  run-tracked iran-conflict

This is expected to produce a seed-only run. Do not describe a seed-only run as a failed simulation or as an LLM auth problem unless a fresh health check or a direct runtime error proves that.

Seed packet plus MiroFish simulation:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  run-tracked iran-conflict \
  --simulate

If the operator wants to edit or prune the cast before the next run, export a profile manifest from a finished simulation first:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  profile-template \
  --simulation-id sim_0e4e0705893c

Then wire that JSON back into the tracked topic:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  update-topic iran-conflict \
  --set-profile-overrides-path /absolute/path/to/profile-manifest.json

The manifest is operator-editable. Use it to disable weak actors or rewrite entity_type, name, user_name, persona, bio, and related profile fields before the next run.

Manage tracked topics

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py list-topics
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py untrack-topic <topic-id>

Modular control for tracked topics

List available WorldOSINT modules first:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py list-worldosint-modules

Use update-topic to change modules and execution behavior without recreating the topic:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  update-topic iran-conflict \
  --add-headless-module military_naval \
  --set-module-param 'news_rss.max_total=160' \
  --set-platform parallel \
  --set-max-rounds 36

Useful modular flags:

  • --set-headless-module <module> (repeatable): replace module set
  • --add-headless-module <module> and --remove-headless-module <module>
  • shorthand aliases also work: --set-module, --add-module, --remove-module
  • --set-topic <text> and --set-market-query <text>: realign the tracked topic to the actual contract being targeted
  • --set-keyword <term>, --add-keyword <term>, --remove-keyword <term>
  • --add-region-code <code>, --remove-region-code <code>
  • --set-module-param 'module.key=value'
  • --remove-module-param module.key or --remove-module-param module
  • --set-platform twitter|reddit|parallel
  • --set-max-rounds <n>
  • --set-profile-overrides-path /absolute/path/to/profile-manifest.json

Natural Hermes ask patterns for module control:

  • "Use PrediHermes list-worldosint-modules and propose the best modules for Hormuz risk."
  • "Use PrediHermes update-topic iran-conflict and add <module>, remove <module>, then show dashboard."

How to use the output

After a run:

  • read run_summary.md
  • if simulation ran, read simulation_summary.md
  • use the selected primary contract question and description as the resolution anchor
  • prefer the contract's own resolution date wording over loose topic labels or stale API close timestamps
  • if the selected contract date conflicts with the topic label, say that plainly and normalize the topic before treating future runs as comparable
  • separate these clearly in your answer:
    • current market price / bid-ask
  • simulation-derived directional view
  • what evidence would change the call

Hermes CLI dashboard and command awareness

PrediHermes can print a terminal-native ASCII dashboard so users see pipeline status directly in Hermes:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py dashboard --topic-id iran-conflict

This dashboard shows:

  • primary market bid/ask/deadline
  • OSINT signal counts (headlines, theme, risk summary, modules)
  • curated intelligence findings and matched Polymarket flow
  • simulation status/action totals when simulation artifacts exist
  • decision call, confidence, and top alerts from the compiled artifact layer

PrediHermes also exposes a Rust local workbench so operators can browse topics, runs, evidence, alerts, accountability, and branch summaries without the web frontend:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  tui \
  --topic-id iran-conflict

The tui command will compile the latest artifacts first, then launch the local workbench. It now includes:

  • a large ASCII PREDIHERMES boot header
  • a short loading sequence before the control room comes online
  • dedicated panes for Topics, Runs, Branches, and Details
  • lightweight live motion in the header and signal bars so focus and status stay visible in the terminal

Useful TUI controls:

  • 1 / 2 / 3 / 4 / 5: jump focus to Topics, Runs, Branches, Tabs, or Detail
  • Tab: cycle focus across panes
  • j / k: move inside the active pane
  • h / l: change detail tab
  • Enter: from Branches, open the selected branch detail directly
  • c: print a ready-to-run create-branch command template into the footer based on the selected run
  • ?: toggle the help overlay
  • r: reload compiled artifacts
  • q: quit

If the user wants a non-interactive refresh without opening the workbench:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  compile-artifacts \
  --topic-id iran-conflict

To show command awareness/help for users inside Hermes:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py command-catalog

If the operator wants to create a new counterfactual branch without touching the web UI, use:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  create-branch \
  --base-simulation-id sim_19463d1a091e \
  --actor-name "Swiss backchannel envoy" \
  --entity-type Diplomat \
  --profession Diplomat \
  --country Switzerland \
  --persona "Quiet mediator pushing phased verification and face-saving sequencing." \
  --bio "Backchannel envoy with access to both US and Iranian negotiators." \
  --interested-topic Diplomacy \
  --interested-topic Verification \
  --injection-round 8 \
  --opening-statement "Swiss channel indicates a verification-first formula could still bridge the deadline gap."

Use --start if the user wants the branch launched immediately after creation. Use --wait only when they explicitly want the command to block for branch startup confirmation.

When responding in Hermes, if a user asks “what can PrediHermes do next?”, use command-catalog and then suggest 1-2 relevant next commands.

Do not invent exact resolution criteria if the market description is vague. Say when the market page needs manual verification.

Show full SKILL.md (655 more words)Show less

Local model path

PrediHermes stays local-first, but the MiroFish simulation backend uses whatever OpenAI-compatible model endpoint the backend is configured to call through:

  • LLM_BASE_URL
  • LLM_MODEL_NAME
  • LLM_API_KEY

That means the operator can keep the full loop local by pointing MiroFish at a local OpenAI-compatible runtime such as Ollama, LM Studio, or vLLM. If the environment still points to a cloud endpoint, say that explicitly instead of implying the run stayed local.

Current repo default:

  • LLM_BASE_URL=http://127.0.0.1:11434/v1
  • LLM_MODEL_NAME=qwen2.5:7b
  • LLM_API_KEY=ollama
  • LOCAL_GRAPH_EXTRACTION_MODE=fast
  • LOCAL_SIMULATION_PROFILE=lean
  • LOCAL_SIM_MAX_AGENTS=48
  • LOCAL_SIM_MAX_ROUNDS=16
  • LOCAL_LLM_REQUEST_TIMEOUT_SECONDS=900
  • LOCAL_LLM_MAX_TOKENS=192

If GRAPH_BACKEND=local, PrediHermes should stay on the local graph path even when a legacy ZEP_API_KEY is still present in the env. Do not blame Zep quota in that case unless a direct runtime error proves the backend is still hitting Zep.

Simulation and actor retrieval

When the user mentions a simulation, branch, or injected actor, do not start with Hermes recall. These runs live in local MiroFish artifacts, not necessarily in Hermes memory.

Use the helper script first:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  lookup-sim \
  --simulation-id sim_b48c23571420

Search by actor name:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  lookup-sim \
  --actor "Shadow Hormuz Underwriter"

Search by loose query:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  lookup-sim \
  --query "hormuz actor branch"

Use --counterfactual-only when the user clearly means an injected-actor branch. If MiroFish is not at the default path, add --mirofish-root /absolute/path/to/MiroFish. If omitted, the helper will try the current working directory, ~/Downloads/MiroFish-main, and ~/MiroFish-main.

What lookup-sim returns:

  • matching simulation_id values
  • base/branch relationship for counterfactual runs
  • injected actor metadata with agent_id and injection_round
  • artifact paths for simulation_config.json, state.json, and action logs

Recommended workflow for simulation questions:

  1. run lookup-sim
  2. read the returned artifact paths with terminal
  3. only use recall if the user explicitly asks about prior Hermes chat context rather than the simulation artifacts

Counterfactual actor injection

If the user wants to test how a new actor would change a past simulation, use the PrediHermes helper first. Do not require the UI.

Prerequisites:

  • MiroFish backend must be running on MIROFISH_BASE_URL and should expose POST /api/simulation/<base_simulation_id>/counterfactual
  • the base simulation must already exist

Workflow:

  1. choose the historical simulation_id
  2. create a counterfactual branch with create-branch
  3. read the returned branch simulation_id
  4. if needed, start the new branch with --start or the normal /api/simulation/start call
  5. poll run-status, run-status/detail, timeline, and actions like any other simulation

Recommended use:

  • inject one actor at a time
  • choose the injection round from a historically important or high-action round
  • provide an opening_statement only if the user explicitly wants the actor to announce itself at insertion time

Preferred branch creation path:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
  create-branch \
  --base-simulation-id <base_simulation_id> \
  --actor-name "Swiss backchannel envoy" \
  --entity-type Diplomat \
  --profession Diplomat \
  --country Switzerland \
  --stance mediator \
  --bio "Quiet envoy coordinating verification-first diplomacy." \
  --persona "Prioritizes de-escalation, inspection sequencing, and face-saving language for both sides." \
  --interested-topic "backchannel diplomacy" \
  --interested-topic "IAEA inspections" \
  --interested-topic "sanctions relief" \
  --injection-round 12 \
  --opening-statement "Swiss channel update: verification-first sequencing is the only viable path."

Direct API fallback if the helper is unavailable:

bash
curl -X POST http://127.0.0.1:5001/api/simulation/<base_simulation_id>/counterfactual \
  -H 'Content-Type: application/json' \
  -d '{
    "actor": {
      "name": "Swiss backchannel envoy",
      "entity_type": "Diplomat",
      "profession": "Diplomat",
      "country": "Switzerland",
      "stance": "mediator",
      "bio": "Quiet envoy coordinating verification-first diplomacy.",
      "persona": "Prioritizes de-escalation, inspection sequencing, and face-saving language for both sides.",
      "interested_topics": ["backchannel diplomacy", "IAEA inspections", "sanctions relief"],
      "activity_level": 0.55,
      "influence_weight": 3.4,
      "posts_per_hour": 1.2,
      "comments_per_hour": 0.9,
      "active_hours": [8,9,10,11,12,13,14,15,16,17,18]
    },
    "injection_round": 12,
    "opening_statement": "Swiss channel update: verification-first sequencing is the only viable path."
  }'

Then start it:

bash
curl -X POST http://127.0.0.1:5001/api/simulation/start \
  -H 'Content-Type: application/json' \
  -d '{
    "simulation_id": "<new_simulation_id>",
    "platform": "parallel",
    "force": true,
    "enable_graph_memory_update": true
  }'

Monitoring endpoints:

  • GET /api/simulation/<id>/run-status
  • GET /api/simulation/<id>/run-status/detail
  • GET /api/simulation/<id>/timeline
  • GET /api/simulation/<id>/actions?round_num=<n>

When answering the user:

  • clearly separate the base run from the counterfactual branch
  • state the injected actor, stance, and injection round
  • avoid claiming the branch is a replay of history; it is a new simulation seeded from the old one
  • if the endpoint is unavailable, say the local MiroFish backend needs the counterfactual-capable fork
  • if asked to create any artifact, verify it exists before claiming success
  • for files use test -f or stat; for media also use ffprobe and report duration/size
  • if verification fails, say the artifact was not produced instead of summarizing an imaginary result

Cron usage

Attach this skill to the Hermes cron job and make the prompt explicit. Keep the prompt self-contained.

Good cron prompt pattern:

  • run the tracked topic by id
  • if simulation succeeds, read the generated summaries
  • return one final forecast for the primary market with concise reasons
  • mention artifact paths in the final response

Example job intent:

  • "Run the tracked topic iran-conflict. If the simulation succeeds, read the generated summaries and give a final YES/NO call for the primary market with 3-5 reasons. Mention the artifact paths."
  • "Run the tracked topic <topic-id>. Read the newest run_summary.md and simulation_summary.md. Return the primary market, current bid/ask, directional call, why the simulation leans that way, and the artifact paths."

Use one tracked topic per cron job. That keeps scheduling clean, lets Hermes answer about each topic independently, and avoids mixing different market resolution criteria in one run.

© nativ3ai, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts) in skill/geopolitical-market-sim of nativ3ai/hermes-geopolitical-market-sim.

  • SKILL.md
  • agents/openai.yaml
  • scripts/geopolitical_market_pipeline.py
  • tools/predihermes/README.md
  • tools/predihermes/__init__.py
  • tools/predihermes/review.py
  • tools/predihermes_tui/Cargo.lock
  • tools/predihermes_tui/Cargo.toml
  • tools/predihermes_tui/src/main.rs

Open the folder on GitHubat commit 197991a

Compare with similar skills

Geopolitical Market Sim 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.

Geopolitical Market Sim compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Geopolitical Market Sim this skillnativ3ai/hermes-geopolitical-market-sim130—~5.3kAutomated safety check: PassAGPL-3.0
Digital Oraclekomako-workshop/digital-oracle878—~5.9kAutomated safety check: PassMIT
Polyclawchainstacklabs/polyclaw3591 repos~2kAutomated safety check: PassApache-2.0
Polymarket TradingBlockRunAI/ClawRouter6.6k—~1.4kAutomated safety check: PassMIT
Dr Manhattanguzus/dr-manhattan204—~2kAutomated safety check: PassApache-2.0
Fintoolsecond-state/fintool316—~5.9kAutomated safety check: PassNone

Similar skills

  • Digital Oracle

    komako-workshop/digital-oracle

    Answer prediction questions using market trading data, not opinions.

    878 GitHub stars~5.9k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Polyclaw

    chainstacklabs/polyclaw

    Trade on Polymarket via split + CLOB execution. An agent skill from chainstacklabs/polyclaw.

    359 GitHub starsUsed in 1 repo~2k tokens
    Business, Finance & HRAuto-check passed
  • Polymarket Trading

    BlockRunAI/ClawRouter

    A skill your agent uses when the user wants to actually PLACE, manage, or redeem bets on Polymarket (not just read odds — that's the blockrunpredexon data tools).

    6.6k GitHub stars~1.4k tokensUpdated 6 days ago
    Business, Finance & HRAuto-check passed
  • Dr Manhattan

    guzus/dr-manhattan

    Trade prediction markets (Polymarket, Kalshi, Opinion, Limitless, Predict.fun) using a unified CCXT-style API.

    204 GitHub stars~2k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Fintool

    second-state/fintool

    Financial trading CLIs — spot and perp trading on Hyperliquid, Binance, Coinbase, OKX.

    316 GitHub stars~5.9k tokensUpdated 4 mo ago
    Business, Finance & HRAuto-check passed
  • Polymarket Tennis

    livetennisapi/livetennisapi-mcp

    Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.

    152 GitHub stars~3k tokensUpdated 4 days ago
    Business, Finance & HRAuto-check passed

Works with

Questions about Geopolitical Market Sim

What does Geopolitical Market Sim do?

PrediHermes, also named geopolitical-market-sim, tracks geopolitical topics, selects relevant open Polymarket contracts near deadline, generates MiroFish seed packets from WorldOSINT data, runs or…. Geopolitical Market Sim is an agent skill from nativ3ai/hermes-geopolitical-market-sim. PrediHermes, also named geopolitical-market-sim, tracks geopolitical topics, selects relevant open Polymarket contracts near deadline, generates MiroFish seed packets from WorldOSINT data, runs or inspects MiroFish simulations, and resolves historical branches or injected actors from local artifacts.

When should I use Geopolitical Market Sim?

Geopolitical Market Sim fits situations like: wants PrediHermes; recurring geopolitical prediction-market monitoring; counterfactual actor injection; simulation comparison.

How do I install Geopolitical Market Sim in Claude Code?

Run `npx skills add nativ3ai/hermes-geopolitical-market-sim --skill geopolitical-market-sim -a claude-code`. Or copy the skill folder (skill/geopolitical-market-sim in nativ3ai/hermes-geopolitical-market-sim) into .claude/skills/geopolitical-market-sim in your project. Claude Code loads it when a task matches its description.

How do I install Geopolitical Market Sim in Codex?

Run `npx skills add nativ3ai/hermes-geopolitical-market-sim --skill geopolitical-market-sim -a codex`. Or copy the skill folder (skill/geopolitical-market-sim in nativ3ai/hermes-geopolitical-market-sim) into .agents/skills/geopolitical-market-sim in your project. Codex loads it when a task matches its description.

Can I use Geopolitical Market Sim in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nativ3ai/hermes-geopolitical-market-sim --skill geopolitical-market-sim -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/geopolitical-market-sim, .gemini/skills/geopolitical-market-sim, .github/skills/geopolitical-market-sim and .opencode/skills/geopolitical-market-sim in your project.

What does Geopolitical Market Sim need to run?

Going by SKILL.md and its folder, Geopolitical Market Sim needs Python and Rust for the scripts in its folder, the command-line tools its instructions call (python3, curl and npm) and credentials named LLM_API_KEY and ZEP_API_KEY. Our summary lists: Python 3; Node.js.

Does Geopolitical Market Sim access the network?

SKILL.md contains no URLs. Its commands use curl and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Geopolitical Market Sim safe to install?

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.

What licence does Geopolitical Market Sim use?

Geopolitical Market Sim is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Geopolitical Market Sim use?

About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Geopolitical Market Sim?

Skills that share tags, products or a category with Geopolitical Market Sim: Digital Oracle (komako-workshop/digital-oracle, 878 stars), Polyclaw (chainstacklabs/polyclaw, 359 stars), Polymarket Trading (BlockRunAI/ClawRouter, 6.6k stars) and Dr Manhattan (guzus/dr-manhattan, 204 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Geopolitical Market Sim?

nativ3ai (a GitHub user) maintains it in nativ3ai/hermes-geopolitical-market-sim, which has 130 GitHub stars. The repository was last updated on June 17, 2026.

Source: nativ3ai/hermes-geopolitical-market-sim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.