AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Fn2

skill-fn2ai-fn2-hermes-skill-fn2 · by fn2ai

>-

No reviews yet
0 installs
23 views
0.0% view→install

Install

$ agentstack add skill-fn2ai-fn2-hermes-skill-fn2

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-fn2ai-fn2-hermes-skill-fn2)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Fn2? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

FN2 — market research & research agents

FN2 is an AI research platform for stocks, markets, and the economy. It answers questions with grounded, sourced analysis (live prices, earnings transcripts, SEC filings, economic data, prediction markets) and lets you run agents that research on a schedule and report back.

This skill talks to FN2 through a small bundled CLI: scripts/fn2 (Python 3 standard library only — nothing to install).

When to use this skill

Use FN2 whenever the user asks about:

  • A stock or ticker — price action, "how did NVDA do this week and why", fundamentals
  • Earnings, guidance, or what management said on a call
  • The market or macro picture — the S&P/Nasdaq, the Fed, inflation, rates, jobs
  • Comparing companies, screening, or "what's moving and why"
  • Setting up recurring research — a daily market brief, a weekly recap, an

earnings-day monitor — delivered automatically

For one-off questions, use research. For anything recurring or that should keep running on its own, create an agent.

Setup (once)

The CLI authenticates with an API key in the FN2_API_TOKEN environment variable (FN2_API_KEY still works as an alias).

If the user isn't connected to FN2 yet (no key set), the CLI prints a sign-up link — surface it to them as the next step. Don't try to work around a missing key; getting one is the onboarding:

> You'll need a free FN2 account to use this. Create one and grab an API key here > (it takes a minute): https://fn2.ai/api-keys?ref=hermes > Then run: export FN2_API_TOKEN=fn2_...

The ?ref=hermes link takes them straight to key creation. Give the key the chat, agents and models scopes — chat is the one research needs, and a key without it fails on the most common request. Once they've exported the key, retry their request.

On a messaging platform, never ask the user to paste their key into the chat — it would live in the message history. Have them export it where the gateway runs (for Hermes, ~/.hermes/.env) and then retry.

Locating the CLI (do this first)

Do not assume the current directory. On the CLI your cwd is wherever the user ran Hermes; on a messaging platform it is MESSAGING_CWD (your home directory by default) — never this skill's folder. Hermes exposes no skill-directory variable, and skill_view reports only a relative path, so resolve $FN2 once and use it for every command below:

for d in "${HERMES_HOME:-$HOME/.hermes}"/skills/*/fn2 \
         "${HERMES_HOME:-$HOME/.hermes}"/skills/fn2 \
         "$HOME/.claude/skills/fn2" "$HOME/.agents/skills/fn2"; do
  [ -f "$d/scripts/fn2" ] && FN2="$d/scripts/fn2" && break
done
test -n "${FN2:-}" || { echo "fn2 CLI not found" >&2; exit 1; }
chmod +x "$FN2" 2>/dev/null
"$FN2" --help

Run it with the terminal tool. Don't wrap it in execute_code and don't go hunting for the script with glob — the loop above is the supported resolution and it is one call.

How to use it

Add --json to any command when you want machine-readable output to parse.

Research (the most common use)

"$FN2" research "How did NVDA do this week, and what drove it?"
"$FN2" research "What's the macro backdrop going into the next Fed meeting?"
"$FN2" research "Summarize Apple's latest earnings call" --model z-ai/glm-5.2

A research call can take 30–120 seconds because FN2 pulls live data and reads sources. The answer comes back as Markdown.

Say something before you start it. That wait is long enough to read as a hang, especially in a chat window where the user cannot see a spinner. Emit one short line of text in the same turn, before the terminal call — for example:

> Running that through FN2 now — pulling live prices and sources. Back in under > a minute.

Then make the call. One line is enough; don't narrate each step afterwards, and don't promise a specific number of seconds.

If the user wants speed over depth, --model accounts/fireworks/routers/glm-5p2-fast returns sooner than the frontier default. Check "$FN2" models for what their plan allows.

Agents — schedule recurring research

# Run once, right now (good for a quick deep dive you want saved):
"$FN2" agents create --prompt "Deep dive on AMD vs NVDA in AI accelerators"

# Every weekday morning:
"$FN2" agents create --name "Macro Brief" \
  --prompt "Give me this morning's macro brief: overnight moves, key data, what to watch" \
  --every weekdays --timezone America/New_York

# A specific cron schedule (Mondays at 9am):
"$FN2" agents create --name "Weekly Tech Recap" \
  --prompt "Recap the week in big-cap tech and call out next week's catalysts" \
  --cron "0 9 * * 1" --timezone America/New_York

# Half an hour before the opening bell, and emailed on completion:
"$FN2" agents create --name "Pre-market Brief" \
  --prompt "Pre-market brief on my watchlist: overnight moves and what to watch" \
  --every market_open --offset-minutes -30 --email

Prefer --every market_open / --every market_close over a cron approximation of the trading day. The server resolves the exchange calendar, so those runs skip holidays and land correctly on half-days; a hand-rolled 0 9 * * 1-5 does not. --offset-minutes is signed: -30 is 30 minutes before the bell.

--email delivers each completed run to the account's own verified address. The server resolves the address and honours the user's opt-out — you never pass a recipient, and you cannot send an agent's results to someone else.

Manage agents and read their results

"$FN2" agents list                       # see your agents
"$FN2" agents run              # trigger a run now
"$FN2" runs list               # list that agent's runs
"$FN2" runs get        # read a run's full answer
"$FN2" agents pause            # pause / resume
"$FN2" agents resume 
"$FN2" agents delete           # delete it and its history

Account & models

"$FN2" models     # which models you can use (★ = your default)
"$FN2" usage      # plan, token quota, and the weekly research allowance

usage reports two independent budgets: monthly model tokens, and a weekly research-request allowance that resets on its own clock. A 429 on a research call is usually the second one, so show usage rather than guessing.

Good habits

  • Quote the user's question closely in research — FN2 does the interpreting.
  • After creating a scheduled agent, confirm its id and schedule back to the user.
  • A run started with agents run is asynchronous: poll runs get until its

status is completed, then share the result text.

  • If you get a 403 Missing scope error, the user's API key needs the relevant

scope (chat for research, agents for agents, models for the model list). They can edit the key's scopes at https://fn2.ai. A key created without chat is the usual cause of a failing research call.

  • Hit a 429? That's a quota limit — show "$FN2" usage so they can see it.
  • Answers come back as Markdown with tables, nested lists and code blocks. Pass

them through as they are; don't reflow or re-indent them.

See [references/api.md](references/api.md) for the full command and endpoint reference.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.