Grounded market research and schedulable research agents — right inside OpenClaw.
Ask your OpenClaw agent "how did NVDA do this week and why?" or "set up a daily macro brief" — and it answers with FN2's grounded, sourced research, or spins up an agent that does it on a schedule.
- 🔎 Research stocks, markets, earnings, and the economy — answers cite live prices, transcripts, filings, and economic data.
- 🤖 Agents that run on a schedule (daily brief, weekly recap, earnings monitor) and report back.
- 🪶 Zero dependencies. One small Python-3-stdlib CLI. No
pip install. - 🔓 No secrets in the repo. Auth is a
FN2_API_KEYyou provide.
From ClawHub:
openclaw skills install @fn2/fn2Or from this repo — copy the skill into your OpenClaw workspace:
git clone https://github.com/fn2ai/fn2-openclaw-skill.git
mkdir -p ~/.openclaw/workspace/skills/fn2
cp -r fn2-openclaw-skill/{SKILL.md,scripts,references} ~/.openclaw/workspace/skills/fn2/OpenClaw discovers the skill by its name/description and loads it on demand.
Either path works — ClawHub keeps the owner-qualified path at
skills/@fn2/fn2, while the manual copy uses the bare skills/fn2 path. The
name: fn2 in SKILL.md identifies the skill at runtime in either layout.
New to FN2? Create a free account and API key here — it takes a minute:
(Give the key the chat, agents, and models scopes.) Then export it so the
skill can use it:
export FN2_API_KEY=fn2_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxIf you don't have a key set, the skill points you to that link automatically.
🔒 Treat this key like a password. Never commit it or paste it into a chat. You can revoke it any time from the same page.
Just talk to your agent:
You: How did the semiconductor stocks do today, and what moved them?
You: Set up an agent that gives me a market brief every weekday at 8am ET.
You: What did Apple's CFO say about guidance on the last call?
OpenClaw loads the skill and runs the bundled CLI with its exec tool.
fn2=~/.openclaw/workspace/skills/fn2/scripts/fn2.py
python3 "$fn2" research "What's the macro setup going into the next Fed meeting?"
python3 "$fn2" agents create --name "Macro Brief" \
--prompt "Morning macro brief: overnight moves, key data, what to watch" \
--every weekdays --timezone America/New_York
python3 "$fn2" agents list
python3 "$fn2" modelsAdd --json to any command for machine-readable output. See
references/api.md for the full command and endpoint
reference.
SKILL.md # the skill (agentskills.io standard)
scripts/fn2.py # the CLI (Python 3 stdlib, no deps)
references/api.md # full command + API reference
tests/ # offline unit tests (mocked HTTP)
The CLI is plain Python 3 (3.8+). Tests are fully offline — no key needed:
python3 -m unittest discover -s testsCI runs the test suite and an install-smoke check on every push. Contributions welcome — open an issue or PR.
Publishing uses the clawhub CLI (distinct from the openclaw runtime that
installs skills):
clawhub publisher create fn2 --display-name "FN2" # one-time setup
clawhub skill publish . --owner fn2 --slug fn2 \
--name "FN2 skill for OpenClaw 🦞" --dry-run
clawhub skill publish . --owner fn2 --slug fn2 \
--name "FN2 skill for OpenClaw 🦞"The owner and slug produce the canonical install reference
openclaw skills install @fn2/fn2. Do not publish without --owner fn2, or the
skill will be released under the authenticated user's personal publisher.
SKILL.md follows the open agentskills.io standard,
so this skill also works with Hermes Agent, Claude Code, Codex CLI, OpenCode, and
other compatible agents. A Hermes-packaged version lives at
fn2-hermes-skill.
MIT © FN2. Not affiliated with OpenClaw or ClawHub.