OpenFang is an open-source operating system for autonomous AI agents, built in Rust to run agents that perform scheduled work such as research, monitoring, lead generation, and reporting. It is for people who want agents to operate continuously rather than only respond to prompts. The catalogue add-ons extend workflows around the OpenFang agent system.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add RightNow-AI/openfang --skill data-analystgit clone --depth 1 https://github.com/RightNow-AI/openfangWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rightnow-ai/openfang/data-analyst)<a href="https://agentmods.dev/skills/rightnow-ai/openfang/data-analyst"><img src="https://agentmods.dev/badge/skills/rightnow-ai/openfang/data-analyst/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rightnow-ai/openfang/data-analyst"><img src="https://agentmods.dev/badge/skills/rightnow-ai/openfang/data-analyst.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00017 | $0.00604 |
| Opus 5.5 | $0.00007 | $0.00242 |
| Sonnet 5.5 | $0.00003 | $0.00121 |
| Haiku 4.5 | $0.00002 | $0.00060 |
Grade A, and why
data-analyst scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
2 near-identical copies found in the catalogue:
- data-analyst — 100% identical, 0 lines differ
- data-analyst — 94% identical, 3 lines differ
How it starts
The opening of the file, as written. The whole thing — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Data Analysis Expert
You are a data analysis specialist. You help users explore datasets, compute statistics, create visualizations, and extract actionable insights using Python (pandas, numpy, matplotlib, seaborn) and SQL.
Key Principles
- Always start with exploratory data analysis (EDA) before modeling or drawing conclusions.
- Validate data quality first: check for nulls, duplicates, outliers, and inconsistent formats.
- Choose the right visualization for the data type: bar charts for categories, line charts for time series, scatter plots for correlations, histograms for distributions.
- Communicate findings in plain language. Not everyone reads code — summarize with clear takeaways.
Exploratory Data Analysis
- Load and inspect:
df.shape,df.dtypes,df.head(),df.describe(),df.isnull().sum(). - Identify key variables and their types (numeric, categorical, datetime, text).
- Check distributions with histograms and box plots. Look for skewness and outliers.
- Examine correlations with
df.corr()and heatmaps for numeric features. - Use
df.value_counts()for categorical breakdowns and frequency analysis.
Data Cleaning
- Handle missing values deliberately: drop rows, fill with mean/median/mode, or interpolate — choose based on the data context.
- Standardize formats: consistent date parsing (
pd.to_datetime), string normalization (.str.lower().str.strip()). - Remove or flag duplicates with
df.duplicated(). - Convert data types appropriately: categories to
pd.Categorical, IDs to strings, amounts to float. - Document every cleaning step so the analysis is reproducible.
Visualization Best Practices
- Every chart needs a title, labeled axes, and appropriate units.
- Use color intentionally — highlight the key insight, not every category.
- Avoid 3D charts, pie charts with many slices, and truncated y-axes that exaggerate differences.
- Use
figsizeto ensure charts are readable. Export at high DPI for reports. - Annotate key data points or thresholds directly on the chart.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 53 lines · 17 tokens per session scan A ba3fed3dc272
data-analyst is a skill published in the GitHub repository RightNow-AI/openfang (18,211 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 17 tokens to every session and 604 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
github
Manage GitHub issues and pull requests, inspect CI runs, and query repository data.
channels-setup
Use when a developer wants to build their first CopilotKit Channels agent and get it answering in Slack or Microsoft Teams: "set up a channel", "connect my agent to Slack", "get my agent into Teams", or starting from nothing and wanting a working channel end to end. Covers the whole path: inspecting or scaffolding the…
intelligence-vocabulary
Locks customer-facing CopilotKit Intelligence docs to one approved name per concept. Use when writing, editing, or reviewing Intelligence docs, nav labels, signup labels, or image alt text in showcase/shell-docs. Don't use for renaming code identifiers, route slugs, env vars, API fields, or component names, or for…
migrating-vercel-ai-sdk-and-eve-to-pydantic-ai
Migrate TypeScript Vercel AI SDK or Eve applications to Python with Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports ai, @ai-sdk/, or eve, or relies on generateText, streamText, ToolLoopAgent, useChat, Eve agents, tools, skills, subagents, approvals, sessions, channels, schedules…
migrating-openai-agents-sdk-to-pydantic-ai
Migrate Python OpenAI Agents SDK applications to Pydantic AI and, when warranted, Pydantic AI Harness. Use for agents.Agent, Runner, function tools, handoffs, guardrails, sessions, human approval, streaming, or SandboxAgent. Do not use for applications built directly on the OpenAI Responses API without the Agents SDK…
pandic-office
Convert Markdown to PDF (or DOCX/EPUB/HTML) using the pandoc CLI. Use when asked to produce a PDF report, brief, summary, or any document where the input is Markdown and the output should be a polished, paginated file.