Ape Present logo

Ape Present

Community
arpitbbhayani
ape-present

Converts a blog post into a single self-contained HTML document -- a visual-heavy, readable walkthrough with custom animated diagrams, short and crisp bullet points, and a natural explanation flow from first principles. Trigger on "ape present", "make this presentable", or "turn this post into a doc I can walk people through".

Overview

Publisherarpitbbhayani
Repositoryape-skills
Skill nameape-present
Stars
51
Forks
5
Bundled files
9
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 9 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by arpitbbhayani on GitHub. Read the source before you install it.

Installation

Install the Ape Present AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/arpitbbhayani/ape-skills/tree/master/ape-present
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/arpitbbhayani/ape-skills.git /tmp/ape-skills
mkdir -p .claude/skills
cp -r /tmp/ape-skills/ape-present .claude/skills/ape-present
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ape Present in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ape Present on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ape Present is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Present Skill

Takes a blog post and produces one self-contained HTML file designed for intuitive learning: a clean header, short crisp bullet points, and visual-first explanations. Diagrams take center stage, featuring custom animations that visually demonstrate the underlying mechanics, followed by numbers set large and wire layouts or pseudocode where relevant.

It is a document, not a deck. No full-screen hero sections, no scroll-snapping, and no slide feel. Single file, comfortable reading width (--measure), full theme support, and a fixed section skeleton -- illustration, context, body, sources -- so every document has a coherent shape.

It is not the blog either. The post merely recorded or explained; this document teaches. Write it as an expert engineer explaining the concept to a sharp peer:

  • Visuals carry the heavy lifting: Every idea is anchored by a diagram, custom animation, code snippet, or layout.
  • Short, crisp bullet points: No verbose paragraphs or walls of text. Use punchy, high-signal bullets that explain the invariant, the causal steps, and the trade-off.
  • Custom animations: You are free and encouraged to design custom SVG/CSS animations tailored directly to what the concept needs to make the mechanism click.
  • Natural, causal flow: Ideas progress logically, where each section resolves a constraint or trade-off raised by the previous one.

Audience: practicing engineers. Ground explanations in first principles and systems realities (disk seeks, memory hierarchies, network hops).

Design System & Custom Animations

The reference/ directory next to this file holds the design system: base.css, runtime.js, skeleton.html, svg-templates.md, and verify.sh.

  • Visual-first presentation: Every idea gets at least one visual figure. Multiple visuals per idea (e.g. animated flow + pseudocode, diagram + trade-off matrix) are welcomed whenever helpful.
  • Custom animated diagrams encouraged: While svg-templates.md provides a fast catalogue of standard shapes, do not feel constrained by it. When a concept calls for a specialized layout, data movement, or custom state cycle, design a custom animated SVG.
  • Cohesive tokens: Build custom visuals using only the CSS variables defined in base.css (var(--surface), var(--line), var(--accent), var(--accent-soft), var(--muted), var(--err), var(--ok)). Never invent arbitrary hex colors outside :root.
  • Motion with purpose: Motion exists to make mechanisms intuitive. Animate data packets moving along paths (animateMotion), pulsing nodes (class="pulse"), flowing channels (class="stream-channel"), or cycling active states (data-cycle). Keep motion purposeful and loops reasonable (1.5s - 3s). Static evidence charts (bars, tables, quotes) stay still.

Input Handling

The user may provide input in any of these forms:

  1. File path on disk: a path ending in .md, .txt, .html, or similar. Read the file directly.
  2. A URL: fetch using web tools, then strip navigation and sidebars before working on the body.
  3. Pasted content: raw text in the message.
  4. Ambiguous: if unclear, ask once. Do not guess.

Optional modifiers:

  • Audience: e.g., "for execs", "for new grads". Default: software engineers with 5-8 years of experience.
  • Length: "short" (4-6 key ideas) or "full" (all core ideas). Default: full.
  • Theme: "midnight", "tokyo", "nord", "dracula", "gruvbox", "rosepine", "forest", "neon", "daylight", "arctic", "solarized", "paper", "rosequartz", "swiss" (applied via <html lang="en" data-theme="theme">). Default: OS-following.
  • Layout: data-layout="left" for left-aligned body with rightward breakouts. Default: centered.

Step 1: Find the Spine & Natural Flow

Read the source material once. Extract:

  1. The one-line claim: The central thesis in one punchy sentence (the dek).
  2. The lead visual illustration concept: A simple, iconic visual motif representing the topic (e.g. an append stream entering an active block, a single heartbeat pulse, an index pointer). Keep it simple and focused — never try to map the entire blog post or full architecture into this one visual.
  3. The ideas in natural explanatory flow: 4 to 10 progressive milestones. Each milestone represents one logical step in understanding:
    • What fundamental constraint makes this hard?
    • The central intuition / naive attempt breakdown.
    • The core mechanism (how the gears turn).
    • How edge cases, concurrency, or scale are solved.
    • The primary trade-off or production reality. Every idea heading is a clear, read-aloud sentence capturing the insight.
  4. The visual & animation concept for each idea: A template from svg-templates.md or a custom animated design that illuminates the specific mechanics.
  5. Key numbers & invariants: Exact stats, orders of magnitude, and core formulas.
  6. Concrete code / layout: Trimmed code (<= 20 lines) or clean pseudocode; record/wire format diagrams.

Print the spine:

  • Lead Illustration: <super-visual description capturing the talk>
  • NN. <idea as sentence> -> <visual / custom animation description>.

Step 2: Document Structure & Writing Style

Follow skeleton.html:

html
<article class="doc">
  <header class="doc-header">
    <h1>{{TITLE}}</h1>
    <p class="dek">{{ONE-LINE CLAIM}}</p>
  </header>

  <section id="illustration">
    <figure class="wide lead-art">
      <!-- High-impact visual illustration that conceptually represents the talk/article.
           Not a text summary, but an evocative, animated visual scene capturing the topic. -->
      {{LEAD SVG ILLUSTRATION}}
      <figcaption><strong>{{Illustration Title, 3-6 words.}}</strong> {{One crisp sentence capturing what the visual represents about the talk.}}</figcaption>
    </figure>
  </section>

  <section id="context">
    <h2>{{CONTEXT HEADING as a sentence}}</h2>
    <div class="context-body">
      <!-- 2-4 crisp bullets grounding the problem in first principles -->
      <ul class="rules">
        <li><strong>The Fundamental Invariant</strong>: ...</li>
        <li><strong>Why Naive Approaches Fail</strong>: ...</li>
      </ul>
    </div>
  </section>

  <section id="body">
    <!-- One section per idea, numbered data-n="01", data-n="02", etc. -->
    <h2 data-n="01">{{IDEA AS A READ-ALOUD SENTENCE}}</h2>
    
    <!-- Short, crisp bullet points explaining the concept -->
    <ul class="rules">
      <li><strong>Core Intuition</strong>: [The immediate mental model or physics constraint]</li>
      <li><strong>Mechanism</strong>: [Causal step-by-step: what happens, in what order]</li>
      <li><strong>Trade-off / Invariant</strong>: [What is gained vs. what is sacrificed]</li>
    </ul>

    <!-- Visual: Animated SVG (custom or template), Code, Layout, or Matrix -->
    <figure class="wide">
      {{ANIMATED SVG OR VISUAL}}
      <figcaption><strong>{{Label, 3-6 words.}}</strong> {{One sentence explaining what the visual demonstrates.}}</figcaption>
    </figure>

    <!-- Optional: Second visual element if helpful (pseudocode, stat row, trade-off matrix, wire format) -->
    <!-- Optional: Caveat aside if the source had one -->
    <div class="aside"><p>{{The caveat or boundary condition}}</p></div>
  </section>

  <section id="sources">
    <h2>Sources & References</h2>
    <ul>
      <li cite="...">...</li>
    </ul>
  </section>
</article>

Writing Rules: Short, Crisp, Intuitive

  • No walls of prose: Never write dense multi-paragraph text. Explain ideas through tight, bulleted points (.rules or .steps).
  • Focus heavily on explanation: Frame every concept from first principles. What invariant makes this hard? What naive assumption broke? How does this design restore the guarantee?
  • Natural progression: Section N+1 should naturally answer the challenge or trade-off left open by Section N.
  • Cross-link text to visuals: Use <span class="inspect-node" tabindex="0" data-target="node-id"> to connect bullet points directly to highlighted diagram elements.
  • Truthful to the source: Use the post's exact numbers, benchmarks, and claims. Never fabricate facts or benchmarks.

Step 3: Crafting Visuals & Custom Animations

  • Crafting the Lead Visual Illustration (Simplicity First):
    • The talk opens with a simple, iconic visual anchor, never a text summary or TL;DR box.
    • Do NOT map the whole blog post into one complex diagram: Do not attempt to fit multiple systems, stages, or edge cases into this illustration. Body sections will explain mechanisms one step at a time.
    • Aim for simplicity & elegance: 2 to 3 clean elements max. A focused visual motif that sets the mood/theme of the talk (e.g., an append stream entering an active block, a clean pulse between two nodes, or a pointer to an index cell).
    • Subtle, purposeful motion: A single moving packet or gentle pulse. Keep it calm, clean, and fast to parse visually.
  • Use the templates or invent custom designs: Standard templates in reference/svg-templates.md work well for basic pipelines, tables, and trees. When the idea has a distinct spatial or mechanical dynamic, write a custom animated SVG.
  • Animation primitives:
    • animateMotion: Move packets, offsets, or requests along SVG paths (<mpath href="#path-id"/>).
    • class="pulse" or class="pulse-glow": Highlight active buffers, locks, or workers.
    • data-cycle="ms": Step sequentially through state machines, ring tokens, or phased protocols.
    • class="flowing": Show continuous streams or data pipes.
  • Keep diagrams clean and legible:
    • 8px grid alignment, viewBox="0 0 960 H" (or 640 for narrow).
    • Clear typography: labels inside elements at font-size 16-18, annotations at 14.
    • Accessible: every <svg> must have role="img" and a descriptive aria-label.
    • Captioned: every visual sits in a <figure> with a <figcaption>.

Step 4: Assemble and Verify

  1. Write content file: Start with skeleton.html, write headers, bullets, and figures. Leave {{BASE_CSS}} and {{RUNTIME_JS}} in place. Remove skeleton data-example blocks.
  2. Inject CSS & JS mechanically:
    bash
    python3 - <<'EOF'
    from pathlib import Path
    ref = Path("REF") # path to reference/
    doc = Path("out.html")
    html = doc.read_text()
    html = html.replace("{{BASE_CSS}}", (ref/"base.css").read_text())
    html = html.replace("{{RUNTIME_JS}}", (ref/"runtime.js").read_text())
    doc.write_text(html)
    EOF
  3. Verify with script:
    bash
    bash <skill-dir>/reference/verify.sh out.html source.md
    Fix any structural issues (missing sections, unclosed tags, leftover {{ markers, or ungrounded numbers).
  4. Factual review: Confirm that all numbers, algorithmic steps, and trade-offs faithfully reflect the source material without hallucinations.

Checklist

  • Visual-heavy presentation: at least one visual figure per idea; custom animated designs used where helpful to show mechanism.
  • Simple, iconic lead visual illustration under the header (not an overloaded architectural diagram summarizing the whole blog post).
  • Short, crisp bullets instead of dense prose paragraphs.
  • Natural explanatory flow: ideas progress logically from problem to mechanism to edge cases and trade-offs.
  • Visuals built cleanly using design system CSS variables (--surface, --line, --accent, etc.).
  • Mechanism diagrams move purposefully; static evidence figures remain still.
  • Every figure has a <figcaption> with a bold label and clear takeaway.
  • Four required sections present (illustration, context, body, sources), exactly one h1.
  • Design system (base.css and runtime.js) injected cleanly with zero leftover {{ markers.
  • Numbers, benchmarks, and claims grounded in the source material.

Output Structure

  1. Print one punchy flavour line starting with "Ape is": e.g., "Ape is turning this post into a visual-heavy walkthrough with custom animations."
  2. Print the spine showing the natural flow of ideas and their visual/animated forms.
  3. Build the self-contained HTML file and run verification.
  4. Print a concise summary with:
    • Output file path
    • Key ideas and the animated/visual forms used
    • Confirmation of factual alignment and verification status

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Ape Present AI skill do?

Converts a blog post into a single self-contained HTML document -- a visual-heavy, readable walkthrough with custom animated diagrams, short and crisp bullet points, and a natural explanation flow from first principles. Trigger on "ape present", "make this presentable", or "turn this post into a doc I can walk people through".

Why use Ape Present on TypingMind?

Because you install it once and use it with any model. Ape Present is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ape Present in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/arpitbbhayani/ape-skills/tree/master/ape-present. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Ape Present?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ape Present?

As many as you like. As long as a model supports skills, you can use Ape Present with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ape Present AI skill free?

Yes. It is published on GitHub by arpitbbhayani under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇