mastodon-ingest
Fetch recent Mastodon posts and record interesting content to the vault
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Fetch recent Mastodon posts and record interesting content to the vault
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Unified knowledge base — shared Obsidian-compatible vault for curated pages, journal entries, and user notes
Daily scheduled brainstorm (also runnable on demand via /blog-ideas) that reviews the week-so-far across ingested activity, the daily journal, and the blog archive, and maintains a living weekly page of blog-post ideas.
Fetch recent Linkding bookmarks, analyze their content in child agents, and record insights to the vault
Fetch recent activity across all me-to-markdown sources (Mastodon, Linkding, GitHub, Spotify, YouTube, Pocket Casts), analyze each source in a child agent, and record insights to the vault
Fetch new items from subscribed RSS/Atom feeds and record interesting content to the vault
Review recent journal entries and conversations, distill insights into vault pages
| name | mastodon-ingest |
| description | Fetch recent Mastodon posts and record interesting content to the vault |
| effort | default |
| allowed-tools | shell($SKILL_DIR/fetch.sh*), vault_read, vault_write, vault_search, vault_list, vault_backlinks, vault_journal_append, current_time |
| user-invocable | true |
Fetch recent Mastodon posts and integrate interesting content into the vault knowledge base.
Write all Mastodon-derived pages directly under agent/pages/mastodon/ as a flat namespace — no topical subdirectories. Use [[wiki-links]] between pages to express relationships, and link out to related pages elsewhere in the vault. The garden skill handles promoting clusters to subdirectories when they earn it.
Required environment variables (set in .env or config.json env section):
| Env Var | Description |
|---|---|
MASTODON_SERVER | Mastodon instance URL (e.g. https://mastodon.social) |
MASTODON_ACCESS_TOKEN | API token (Settings > Development > New Application, read:statuses scope) |
Run the fetch script using the shell tool. The script is bundled with this skill:
$SKILL_DIR/fetch.sh
What this does (no-args mode):
mastodon-to-markdown binaryworkspace/skill-state/mastodon-ingest/last-run-time.txt)--exclude-boosts and --exclude-replies by defaultBackfill mode. When invoked with arguments, the script forwards them directly to the underlying mastodon-to-markdown fetch binary and skips the timestamp update — so a backfill doesn't clobber the scheduled-cycle state. The --exclude-boosts / --exclude-replies defaults are also dropped; pass them explicitly if you want them. Use this when the user asks for older posts or a specific date range:
$SKILL_DIR/fetch.sh --since 7d # last 7 days, ad-hoc
$SKILL_DIR/fetch.sh --start 2026-04-01 --end 2026-04-30
$SKILL_DIR/fetch.sh --since 7d --exclude-boosts --exclude-replies
Available flags (forwarded to the binary): --since <duration> (e.g. 24h, 7d), --start YYYY-MM-DD, --end YYYY-MM-DD, --exclude-boosts, --exclude-replies, --exclude-favorites, --public-only, --visibility <list>, --sort-order asc|desc. See $SKILL_DIR/bin/<platform>/mastodon-to-markdown fetch --help for the full list.
If the script fails (missing env vars, binary not found), report the error and stop.
Read through the fetched posts. For each one, consider:
Skip boring posts — routine posts, casual replies, and low-signal content don't need wiki entries.
For each interesting post:
vault_search to find existing relevant pages.vault_read it, revise with new context. PRESERVE the existing frontmatter as-is. If this post has a URL, APPEND a new entry to the sources: list for it (don't modify earlier entries — they record when each source was first added); if there's no URL, leave sources: as-is. Either way, append the post to the body ## Sources section. vault_write the updated page.sources: with just this post; otherwise omit the sources: key. Don't backfill historical sources from the body ## Sources section.[[wiki-links]], and a ## Sources section listing this post.New-page frontmatter:
---
tags: [<topic-tags>]
summary: one-line summary of the page
sources:
- url: <post URL>
date: <post date as YYYY-MM-DD>
added_by: mastodon-ingest
---
sources: is a YAML list of objects keyed by URL — the list exists for revalidation tooling, which needs a URL to refetch. If the post has no URL, OMIT the sources: key entirely from the frontmatter (or leave any existing list unchanged) and just note the source in the body ## Sources section.
In the ## Sources section, note the Mastodon post date and include the post URL if available.
If you made vault changes, summarize what you added/updated. If there was nothing interesting to ingest, respond with HEARTBEAT_OK.