freshrss-knowledge-ingestion

freshrss-knowledge-ingestion is a skill for Claude Code, Codex from Knuckles-Team/freshrss-agent. It costs 115 tokens per session (950 once invoked), scanned A, original, MIT.

A connector that imports FreshRSS data into an epistemic graph, a linked knowledge base for searchable documents and relationships. It stores feed items as documents and feed organization as linked nodes.

In plain words
What is it for?
Use it to build a searchable article corpus, record feed categories and subscriptions, or fetch and save only new items.
Why use it?
It preserves collected articles and feed structure so they can be searched and connected later.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to build a searchable article corpus, record feed categories and subscriptions, or fetch and save only new items.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/knuckles-team/freshrss-agent/freshrss-knowledge-ingestion
Install

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.

Any agent
npx skills add Knuckles-Team/freshrss-agent --skill freshrss-knowledge-ingestion
Clone the repo
git clone --depth 1 https://github.com/Knuckles-Team/freshrss-agent

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for freshrss-knowledge-ingestion

README.md
[![agentmods](https://agentmods.dev/badge/skills/knuckles-team/freshrss-agent/freshrss-knowledge-ingestion/github.svg)](https://agentmods.dev/skills/knuckles-team/freshrss-agent/freshrss-knowledge-ingestion)
Your own site
<a href="https://agentmods.dev/skills/knuckles-team/freshrss-agent/freshrss-knowledge-ingestion"><img src="https://agentmods.dev/badge/skills/knuckles-team/freshrss-agent/freshrss-knowledge-ingestion/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.

agentmods 80×15 button for freshrss-knowledge-ingestion

Your own site · 80×15
<a href="https://agentmods.dev/skills/knuckles-team/freshrss-agent/freshrss-knowledge-ingestion"><img src="https://agentmods.dev/badge/skills/knuckles-team/freshrss-agent/freshrss-knowledge-ingestion.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 115 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 950 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00115 $0.00950
Opus 5 $0.00057 $0.00475
Sonnet 5 $0.00023 $0.00190
Haiku 4.5 $0.00012 $0.00095

Measured 8d ago against content hash f92c5933ee28, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

freshrss-knowledge-ingestion 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 8d 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.

freshrss_agent/skills/freshrss-knowledge-ingestion/SKILL.md · 82 lines

How it starts

The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.

FreshRSS Knowledge Ingestion

Push FreshRSS content into the ONE epistemic-graph knowledge graph so feed items become semantically searchable documents and feeds become typed, linkable nodes. Ingestion is best-effort and engine-guarded: with no reachable engine it cleanly no-ops (ingested: null) and the fetch still returns.

When to use

  • Build a searchable corpus of feed items (:Document with body + source_uri).
  • Materialize the feed topology (:FeedSubscription:FeedCategory) in the KG.
  • Run a delta sweep that both reads and persists what is new.

When NOT to use

  • Just reading/triaging a stream without persisting → freshrss-feed-reader.
  • Managing which feeds are followed / their tags → freshrss-subscription-management.

Prerequisites & environment

Connect via the mcp-client skill against the freshrss-agent MCP server. A reachable epistemic-graph engine is required for a non-null result.

Variable Required Notes
FRESHRSS_URL / FRESHRSS_USER / FRESHRSS_API_PASSWORD GReader access
FRESHRSS_KG_AUTO_INGEST optional Default on; set 0 to disable auto-ingest on every fetch

Tools & actions

Tool Purpose
freshrss_ingest_items Fetch a stream, push its items → :Document nodes
freshrss_ingest_subscriptions List subscriptions, push → :FeedSubscription + :FeedCategory (+ :inCategory)

Node ids follow freshrss:<class>:<externalId> (freshrss:item:<id>, freshrss:subscription:<id>, freshrss:category:<id>).

Recipes (params_json)

Ingest the newest 200 items across everything:

{"stream_id":"user/-/state/com.google/reading-list","count":200,"order":"n"}

Delta ingest since a watermark:

{"stream_id":"user/-/state/com.google/reading-list","newer_than":1719792000,"count":500}

Ingest the whole subscription topology (no params):

{}

Gotchas

  • Ingestion is best-effort: a null ingested means no engine was reachable, not a failure — the listing still succeeds.
  • freshrss_ingest_items accepts the same params as freshrss_reader stream_contents; page with continuation for a full sweep.
  • Feed items land as :Document (type-forced) carrying text, title, source_uri, published, and the originating feed_title/feed_stream_id.
  • Fetching via freshrss_reader already auto-ingests items by default; call freshrss_ingest_items explicitly when you want an ingest without the read path, or freshrss_ingest_subscriptions for the feed topology.
  • type on every node matches a class federated by the package's feed.ttl ontology leg (:Document, :FeedSubscription, :FeedCategory).

Read the full file on GitHub · 82 lines

Changes

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.

  1. 8d ago First seen · 82 lines · 115 tokens per session scan A f92c5933ee28

Subscribe to this mod's changes

freshrss-knowledge-ingestion is a skill published in the GitHub repository Knuckles-Team/freshrss-agent (0 stars, last pushed 11d ago), licensed MIT. It adds 115 tokens to every session and 950 once invoked, about $0.0006 per session on Opus 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-31.

Related

Other skills, from other repositories

audio-transcriber-knowledge-graph

Native knowledge-graph ingestion of Whisper transcripts on the audio-transcriber MCP server — transcribe an audio/video file and push it into the epistemic-graph in one call: the raw audio as a shared :MediaAsset blob, the transcript text as a :Document, and each Whisper segment as a :TranscriptSegment node linked…

Knuckles-Team/audio-transcriber · 121 tokens

jellyfin-kg-ingestion

Natively ingest a Jellyfin library into the epistemic-graph knowledge graph via the jellyfin-mcp MCP server — push library items as typed :MediaAsset/:Book nodes with :hasGenre/:performedBy/:authoredBy links and item overviews as searchable :Document nodes (jellyfiningestlibrary), and item posters as content-addressed…

Knuckles-Team/jellyfin-mcp · 158 tokens

archivebox-kg-ingestion

Natively ingest an ArchiveBox archive into the epistemic-graph knowledge graph via the archivebox-api MCP server — push snapshots as typed :Snapshot nodes (with :Tag + :hasTag links and per-snapshot :Document page-text) and archive results as :ArchiveResult nodes, best-effort, with the Wire-First ingest tools. Use…

Knuckles-Team/archivebox-api · 141 tokens

mattermost-kg-ingestion

Natively ingest Mattermost into the epistemic-graph knowledge graph via the mattermost-mcp MCP server — push teams, channels and users as typed :Team/:Channel/:Person nodes, messages as :Document nodes, and file attachments as :MediaAsset blobs, in one ACID path. Use when the agent must make a Mattermost workspace…

Knuckles-Team/mattermost-mcp · 119 tokens

graphify

Use for any question about a codebase, its architecture, file relationships, or project content — especially when graphify-out/ exists, where the question should be treated as a graphify query first. Turns any input (code, docs, papers, images, videos) into a persistent knowledge graph with god nodes, community…

Graphify-Labs/graphify · 76 tokens

backfill-enumerate-drain

How to backfill a newly-added repo or team — the enumerate-then-drain loop, the single-event contract, and resume-safe todo discipline. Load this when handling a .added seed event with the planner on.

potpie-ai/potpie · 52 tokens