Agent skill

Research Render

by iusztinpaul in iusztinpaul/ai-research-os-workshop

Generate a multi-form answer (Marp slide deck, matplotlib chart, Obsidian Canvas, or social content brief) from one or more wiki pages in a research directory and file the output back into…

MITAuto-check passedDocuments & Office

Install Research Render

skills CLI
$ npx skills add iusztinpaul/ai-research-os-workshop --skill research-render -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install iusztinpaul/ai-research-os-workshop research-render --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/iusztinpaul/ai-research-os-workshop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ai-research-os/skills/research-render .claude/skills/research-render && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
research-render
GitHub stars
179
Token cost
~3.7k tokens
SKILL.md length
1,737 words
Files
5
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Generate a multi-form answer (Marp slide deck, matplotlib chart, Obsidian Canvas, or social content brief) from one or more wiki pages in a research directory and file the output back into…

  • Works in 7 steps: Gather inputs and pick the format(s) → Compute the slug + output paths → Idempotency check → …
  • The user wants to make a slide deck on X
  • SKILL.md covers Step 1 — Gather inputs and…, Step 2 — Compute the slug +…, Step 3 — Idempotency check and Step 4 — Spawn the…, plus 6 more sections
  • Calls uv

What it does

Research Render is an agent skill from iusztinpaul/ai-research-os-workshop. Generate a multi-form answer (Marp slide deck, matplotlib chart, Obsidian Canvas, or social content brief) from one or more wiki pages in a research directory and file the output back into wiki/renders/. Outputs compound — they appear in index.yaml/index.md and can be re-rendered idempotently. One run can render several forms at once. Use when the user wants to "make a slide deck on X", "chart the comparison of A vs B", "build a canvas of how these concepts connect", "render this as Marp", or "extract a post idea…

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `agents/brief_writer.md`, `agents/canvas_writer.md` and `agents/chart_writer.md`).

It sits in Documents & Office, covering Slides and decks, Data visualization and Social media posts. It works with Matplotlib and Obsidian. The repository describes itself as: How to turn your Second Brain into a living research memory that your agents maintain. Workshop with slides, video and code. The licence is MIT.

When your agent uses it

  • The user wants to make a slide deck on X
  • Chart the comparison of A vs B
  • Build a canvas of how these concepts connect
  • Render this as Marp

Example prompts

  • “make a slide deck on X”
  • “chart the comparison of A vs B”
  • “build a canvas of how these concepts connect”
  • “/research-render”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Gather inputs and pick the format(s)
  2. Compute the slug + output paths
  3. Idempotency check
  4. Spawn the format-specific subagent
  5. Update the index
  6. Append log entry
  7. Present results

What it can do on your machine

Read from SKILL.md and the folder at commit dc66605. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Research Render loads about 3.7k tokens when it runs. Until then it costs about 174 tokens; SKILL.md has 1,737 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~174
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from iusztinpaul/ai-research-os-workshop at commit dc66605, republished under its MIT licence (© iusztinpaul). 1,737 words, ~3,696 tokens.

Download SKILL.mdSave it as .claude/skills/research-render/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
research-render
description
Generate a multi-form answer (Marp slide deck, matplotlib chart, Obsidian Canvas, or social content brief) from one or more wiki pages in a research directory and file the output back into wiki/renders/. Outputs compound — they appear in index.yaml/index.md and can be re-rendered idempotently. One run can render several forms at once. Use when the user wants to "make a slide deck on X", "chart the comparison of A vs B", "build a canvas of how these concepts connect", "render this as Marp", or "extract a post idea / content brief from my research". Trigger on phrasings like "render", "slide deck", "chart", "canvas", "marp", "brief", "post idea", "extract ideas for social".
user_invocable
true

Research Render

Wiki pages are the substrate. This skill turns them into multi-form answers — slide decks, charts, canvases, social briefs — and files those outputs back into wiki/renders/<format>/<slug>.{md,png,canvas} so they compound just like any other wiki artifact.

Four formats are supported:

  • marp — slide deck (Marp markdown)
  • chart — matplotlib chart (PNG + companion .py script for reproducibility)
  • canvas — Obsidian Canvas (.canvas JSON)
  • brief — social content brief (copy-ready Markdown for a LinkedIn post / Substack note / X thread / Reddit), a reusable idea seed you can paste into a draft

A run can produce several formats at once — the user picks one or many up front (Step 1), and each chosen format is rendered independently.

A fifth notional format ("table") was considered but rejected: tables are best embedded inside comparison wiki pages, which /research already produces via its comparison_writer. If you want a table, ask for a comparison.

Step 1 — Gather inputs and pick the format(s)

You need:

  • format(s) — one or more of marp | chart | canvas | brief. Resolve as follows:
    • If the user's verb pins exactly one format unambiguously ("make a slide deck" → marp, "chart this" → chart, "build a canvas" → canvas, "extract a post idea / write a brief" → brief), use it without asking.
    • Otherwise, present a single AskUserQuestion with multiSelect: true offering the four formats, so the user can pick one or render several at once. Capture the result as selected_formats (a list).
  • source wiki pages — one or more paths under <research_dir>/wiki/. Most renders draw from a single page; canvases, decks, and briefs often draw from multiple (overview + synthesis + a few entity/concept pages).
  • prompt — the user's framing (e.g., "compare BM25 and hybrid retrieval as a 5-slide deck for an internal tech-talk audience"). Verbatim into each render's frontmatter so future agents can reproduce. For a brief, the prompt also carries the body structure the user wants (the sections to cover) — the brief writer follows it for the body (see Format details → Brief).
  • platform (brief only, optional) — LinkedIn / Substack note / X thread / Reddit / generic. Infer from the prompt; default to a platform-agnostic brief. Do not interrupt with a separate question — keep the brief lightly platform-aware and leave true platform-final copy to the user.

Locate research_dir the same way /research (query mode) and /research-lint do.

Steps 2–4 run once per selected format. When several formats are chosen, run the idempotency checks per format and spawn the format writers in parallel (Step 4).

Step 2 — Compute the slug + output paths

Slug:

  • If the user gave a slug (rare): use it.
  • If sources are a single page: derive from that page's slug.
  • If sources are multiple: derive from the prompt (≤ 6 words, kebab-case).

Output paths by format:

FormatPath
marp<research_dir>/wiki/renders/marp/<slug>.md
chart<research_dir>/wiki/renders/charts/<slug>.png (+ <slug>.py next to it)
canvas<research_dir>/wiki/renders/canvases/<slug>.canvas
brief<research_dir>/wiki/renders/briefs/<slug>.md

Create the format directory if it doesn't exist:

bash
mkdir -p "<research_dir>/wiki/renders/<format>"

Step 3 — Idempotency check

Run this check for each selected format (each has its own output path). If the output already exists:

  • Read the existing file's frontmatter (for marp / brief, and the .canvas.meta.yaml sidecar for canvas) or companion .py (for chart).
  • Compare prompt and sources to the new run.
  • If identical, return noop without writing.
  • If different, ask the user via AskUserQuestion whether to overwrite, suffix-with-timestamp, or skip.

Step 4 — Spawn the format-specific subagent

Each format has a dedicated subagent that knows its output shape. Pass:

  • format
  • source_pages — absolute paths
  • research_topic, input_summary (from index.yaml)
  • prompt
  • output_path
  • research_dir
  • platform — (brief only) the inferred platform, or generic
FormatAgent file
marpagents/marp_writer.md
chartagents/chart_writer.md
canvasagents/canvas_writer.md
briefagents/brief_writer.md

Each subagent reads its source pages (these are short — entity/concept/comparison/source wiki pages, not raw files), produces the render, and returns a JSON summary on stdout. The orchestrator never reads the source pages itself.

When selected_formats has more than one entry, spawn all the chosen format writers in parallel — one Agent call per format in a single message. They're independent and write to different paths.

For chart only: after the writer subagent saves the .py script, the orchestrator runs it via uv run --script to produce the .png (the script carries a PEP 723 header declaring matplotlib, so it self-bootstraps). The script is the source of truth; the PNG is regenerable. If execution fails, the script stays on disk and the failure is surfaced — the user can fix it and re-run.

For brief only — handle the needs_guidance return. The brief writer is capped at ~1000 words. If covering the prompt's sections faithfully would exceed that, it writes nothing and returns {"action": "needs_guidance", "estimated_words": N, "reason": "...", "options": [...]}. When you get this, do not force the brief — surface it to the user via AskUserQuestion, using the writer's reason as context and its options as the choices (e.g., drop a section, split into two briefs, headline-level only, or raise the cap). Then re-spawn the brief writer with the tightened prompt (or the agreed higher cap). Don't run Steps 5–6 for a brief that returned needs_guidance and wasn't re-rendered.

Step 5 — Update the index

Renders compound. After all selected formats are written, regenerate index.md once so the new renders appear in the navigation:

bash
uv run --script ${CLAUDE_PLUGIN_ROOT:-.claude}/skills/research/scripts/build_index_md.py --research-dir "<research_dir>"

index.yaml does not need to be rebuilt — renders aren't sources, they don't have entries in the sources: array. The total_wiki_pages count is computed live by build_index_md.py from the wiki tree.

Step 6 — Append log entry

One entry per format rendered (share the date when several ran together):

markdown

## [YYYY-MM-DD] render | <format> | <slug>

- format: <marp|chart|canvas|brief>
- output: wiki/renders/<format>/<slug>.<ext>
- sources: <count> wiki page(s) — <comma-separated relpaths>
- prompt: "<verbatim prompt, truncated to 200 chars>"

Step 7 — Present results

Tell the user:

  • The output path (absolute) and how to view it, for each format rendered
    • marp: open in Obsidian with the Marp plugin, or marp --watch <file> from the CLI
    • chart: open the PNG in any viewer; the companion .py is alongside for editing
    • canvas: open in Obsidian (Canvas is a native plugin)
    • brief: open the .md in Obsidian; copy the body into a post draft, or use it as the idea seed for whatever content workflow you use
  • For multi-page renders, the list of source pages used
  • The prompt (so they can compare against future renders)

Format details

Marp

Marp is a markdown-based slide format. The output file has a YAML frontmatter block configuring the deck, then --- separators between slides:

yaml
---
marp: true
theme: default
paginate: true
backgroundColor: white
sources: [<wiki page paths>]
prompt: "<verbatim>"
created: <ISO-8601>
---

# Title slide

Content

---

## Second slide

- bullet
- bullet

---

...

The Marp Obsidian plugin renders this in-vault. Length: 5–15 slides typical; cap at 25 unless explicitly asked. Each slide ≤ 40 words of body text.

Show full SKILL.md (708 more words)Show less
Chart

Charts are matplotlib outputs. The writer subagent produces a .py script that:

  • Imports matplotlib (matplotlib.use("Agg") for headless, then import matplotlib.pyplot as plt)
  • Builds the figure
  • Saves to a path passed in via sys.argv[1] (so the orchestrator can wire output paths cleanly)

Companion files:

wiki/renders/charts/<slug>.py    # the script (source of truth, editable)
wiki/renders/charts/<slug>.png   # the rendered chart (regenerable)

The script must include a frontmatter-equivalent comment block at the top:

python
# -- render metadata --
# format: chart
# sources: <comma-separated wiki page paths>
# prompt: "<verbatim>"
# created: <ISO-8601>
# --

Run it via:

bash
uv run --script "<research_dir>/wiki/renders/charts/<slug>.py" "<research_dir>/wiki/renders/charts/<slug>.png"
Canvas

Obsidian Canvas files are JSON with a fixed schema (see Obsidian docs). The writer subagent produces a .canvas file with:

  • A frontmatter-style metadata block as a separate sidecar (Canvas files don't carry YAML frontmatter natively) — store at wiki/renders/canvases/<slug>.canvas.meta.yaml for the same sources / prompt / created info
  • Nodes: text nodes (one per source wiki page or one per claim) AND embed nodes (for any image assets the wiki references)
  • Edges: directed connections representing relationships (cites, depends-on, contradicts)

Use Canvas for visual argument maps, entity-relationship views, and "how these concepts connect" overviews — anything where spatial layout adds meaning.

Brief

A brief is a copy-ready social content seed composed from wiki pages — the kind of "executive summary for a post" that a human can paste into a draft. It is prose, never code, and it follows a fixed three-part spine. The body is the only flexible part — the user's prompt dictates its sections.

markdown
---
type: brief
format: brief
platform: <linkedin | substack-note | x-thread | reddit | generic>
sources:
  - <source_page_relpath_1>
  - <source_page_relpath_2>
prompt: "<verbatim prompt>"
created: <ISO-8601 now>
---

# <Working title / hook line>

## Opening — problem → solution
<Problem told as a short story, then the solution and the transformation it brings.
Weaves in the 6 W's: why, what, how, who, where, when.>

## <Body — sections driven by the prompt>
<Whatever the user asked the body to cover.>

## Open questions
1. <highest-signal open question>
2. <second>
3. <third>

---

> Grounding: [[wiki/...]] citations + a one-line `> Synthesis:` note.

The spine, in order:

  1. Opening (problem → solution). Always start with the problem, told as a story (a relatable scenario or pain), then continue with the solution and the transformation it unlocks (before → after). Across this opening, surface the 6 W's — why (why it matters / why now), what (what the thing is), how (how it works at a high level), who (who it's for / who's involved), where (where it fits), when (when it applies). Weave them into the narrative; do not render them as a labeled checklist.
  2. Body — follow the user's request. The prompt names the sections to cover; the body follows it beat-for-beat (e.g., "the 3 memory types, their dynamics, the pipeline, the triggers"). This is the flexible middle.
  3. Conclusion — 3 open questions. Generate exactly three open questions with the highest signal relative to the brief — the ones a thoughtful reader (or the author) would most want answered next, and that genuinely extend or stress-test the idea. They double as the post's engagement closer and as research seeds. Generate them from the brief's own content; you may align them with the research dir's wiki/open-questions.md if it sharpens them, but never just copy that file wholesale.

Conventions:

  • Citations live in a footer, not inline — the body stays paste-able. End with a > Grounding: line wikilinking the source pages, plus a > Synthesis: line (meta-judgment + what new source would extend the idea).
  • Platform-aware, lightly. Adapt length/voice to platform (LinkedIn ≈ 200–400 words, Substack note shorter, X thread = punchier beats, Reddit = plainer); default generic ≈ the executive-summary shape. The brief is a seed — leave true platform-final shaping to the user.
  • No diagrams. A brief is the text companion to a diagram the user already has; don't reproduce one in Mermaid.

Important notes

  • All output goes into wiki/renders/. Renders are wiki artifacts; they compound. Never write to working-dir or anywhere outside the research dir.
  • Source pages, not raw. Renders read from wiki/sources/, wiki/entities/, wiki/concepts/, wiki/comparisons/, wiki/synthesis.md, wiki/overview.md. They do NOT read raw/ files. If a render needs a quote that's only in raw, the user should first promote that quote into a source page.
  • Idempotent. Same prompt + same sources → same render. If you overwrite, log it.
  • Reproducibility for charts. The .py is mandatory. A PNG without script is not allowed — it forecloses future edits.
  • Canvas is best-effort. Obsidian's Canvas schema evolves; the writer aims for compatibility but visual layout may need touch-up in Obsidian after generation.
  • No new dependencies. matplotlib is already in pyproject.toml. Marp viewing is the user's responsibility (Obsidian plugin or CLI). No additional installs.
  • Briefs are seeds, not final posts. The brief is the upstream idea artifact; it deliberately stops short of platform-final copy. Don't over-polish it into a finished post.

Agent reference

  • agents/marp_writer.md — produces a .md Marp deck
  • agents/chart_writer.md — produces a .py matplotlib script (the orchestrator runs it to make the PNG)
  • agents/canvas_writer.md — produces a .canvas JSON file plus a .meta.yaml sidecar
  • agents/brief_writer.md — produces a .md social content brief (problem→solution opening with the 6 W's, prompt-driven body, 3 high-signal open questions)

© iusztinpaul, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in plugins/ai-research-os/skills/research-render of iusztinpaul/ai-research-os-workshop.

  • SKILL.md
  • agents/brief_writer.md
  • agents/canvas_writer.md
  • agents/chart_writer.md
  • agents/marp_writer.md

Open the folder on GitHubat commit dc66605

Compare with similar skills

Research Render next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Research Render compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Research Render this skilliusztinpaul/ai-research-os-workshop179—~3.7kAutomated safety check: PassMIT
Create PresentationJetBrains/youtrackdb437—~1.8kAutomated safety check: PassApache-2.0
Paper FiguresEvoScientist/EvoSkills4751 repos~4.4kAutomated safety check: PassApache-2.0
Img2pptxLancelot-Xie/img2pptx160—~5.9kAutomated safety check: PassApache-2.0
CSV To Executive Reportskrun-dev/skrun210—~1.1kAutomated safety check: PassMIT
Canvas Presentation BuilderAgriciDaniel/claude-canvas299—~1.3kAutomated safety check: PassMIT

Similar skills

  • Create Presentation

    JetBrains/youtrackdb

    Official

    Generate a PPTX presentation explaining code changes on the current branch, with matplotlib diagrams and dark theme slides.

    437 GitHub stars~1.8k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Paper Figures

    EvoScientist/EvoSkills

    A skill your agent uses to produce standalone, publication-ready PNG graphics and reproducible matplotlib scripts from tabular data (CSVs or DataFrames).

    475 GitHub starsUsed in 1 repo~4.4k tokens
    Data & AnalyticsAuto-check passed
  • Img2pptx

    Lancelot-Xie/img2pptx

    Reconstruct raster reference images as one-slide editable, modular, auditable PPTX files containing a complete SVG.

    160 GitHub stars~5.9k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Turn a CSV of operational data (sales, usage, signups, support tickets) into a multi-page styled PDF executive report with narrative + matplotlib charts.

    210 GitHub stars~1.1k tokensUpdated 16 days ago
    Documents & OfficeAuto-check passed
  • Canvas Presentation Builder

    AgriciDaniel/claude-canvas

    Builds an Obsidian Advanced Canvas slide deck with title, content and closing slides wired together by arrow-key navigation edges.

    299 GitHub stars~1.3k tokensUpdated 6 mo ago
    Documents & OfficeAuto-check passed
  • Msp Brand

    RTFM-IT-Services-LLC/msp-claude-skills

    A skill your agent uses whenever generating ANY document, marketing material, email, proposal, slide deck, or other customer- or internal-facing content for your MSP, so that naming, visual style…

    113 GitHub stars~3.7k tokensUpdated 6 days ago
    Documents & OfficeAuto-check passed

More from iusztinpaul/ai-research-os-workshop

  • Research Lint

    iusztinpaul/ai-research-os-workshop

    Health-check a research directory produced by /research. An agent skill from iusztinpaul/ai-research-os-workshop.

    179 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed
  • Nlm Skill

    iusztinpaul/ai-research-os-workshop

    Expert guide for the NotebookLM CLI (nlm) and MCP server - interfaces for Google NotebookLM.

    179 GitHub starsUsed in 1 repo~6.9k tokens
    Auto-check passed
  • Research

    iusztinpaul/ai-research-os-workshop

    Build, extend, AND query a persistent LLM-maintained wiki for any research topic.

    179 GitHub stars~17k tokensUpdated 3 mo ago
    Auto-check passed
  • Research Distill

    iusztinpaul/ai-research-os-workshop

    Distill a research directory (produced by /research) into a single compact research.md containing a guideline-relative distillation of only the sources that were actually used in a piece of content.

    179 GitHub stars~4.4k tokensUpdated 3 mo ago
    Auto-check passed
  • Readwise CLI

    iusztinpaul/ai-research-os-workshop

    How to use the Readwise CLI — access highlights, documents, and your entire reading library from the command line

    179 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed

Questions about Research Render

What does Research Render do?

Generate a multi-form answer (Marp slide deck, matplotlib chart, Obsidian Canvas, or social content brief) from one or more wiki pages in a research directory and file the output back into…. Research Render is an agent skill from iusztinpaul/ai-research-os-workshop. Generate a multi-form answer (Marp slide deck, matplotlib chart, Obsidian Canvas, or social content brief) from one or more wiki pages in a research directory and file the output back into wiki/renders/.

When should I use Research Render?

Research Render fits situations like: the user wants to make a slide deck on X; chart the comparison of A vs B; build a canvas of how these concepts connect; render this as Marp.

How do I install Research Render in Claude Code?

Run `npx skills add iusztinpaul/ai-research-os-workshop --skill research-render -a claude-code`. Or copy the skill folder (plugins/ai-research-os/skills/research-render in iusztinpaul/ai-research-os-workshop) into .claude/skills/research-render in your project. Claude Code loads it when a task matches its description.

How do I install Research Render in Codex?

Run `npx skills add iusztinpaul/ai-research-os-workshop --skill research-render -a codex`. Or copy the skill folder (plugins/ai-research-os/skills/research-render in iusztinpaul/ai-research-os-workshop) into .agents/skills/research-render in your project. Codex loads it when a task matches its description.

Can I use Research Render in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add iusztinpaul/ai-research-os-workshop --skill research-render -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/research-render, .gemini/skills/research-render, .github/skills/research-render and .opencode/skills/research-render in your project.

What does Research Render need to run?

Going by SKILL.md and its folder, Research Render needs the command-line tools its instructions call (uv). Our summary lists: Python 3.

Does Research Render access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Research Render safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Research Render use?

Research Render is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Research Render use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Research Render?

Skills that share tags, products or a category with Research Render: Create Presentation (JetBrains/youtrackdb, 437 stars), Paper Figures (EvoScientist/EvoSkills, 475 stars), Img2pptx (Lancelot-Xie/img2pptx, 160 stars) and CSV To Executive Report (skrun-dev/skrun, 210 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Research Render?

iusztinpaul (a GitHub user) maintains it in iusztinpaul/ai-research-os-workshop, which has 179 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on June 27, 2026.

Source: iusztinpaul/ai-research-os-workshop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.