Borrowing it
Nothing to install: this file belongs to edspencer/frameit. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/edspencer/frameit/main/CLAUDE.mdgit clone --depth 1 https://github.com/edspencer/frameitWrote 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/instructions/edspencer/frameit/claude-md)<a href="https://agentmods.dev/instructions/edspencer/frameit/claude-md"><img src="https://agentmods.dev/badge/instructions/edspencer/frameit/claude-md/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/instructions/edspencer/frameit/claude-md"><img src="https://agentmods.dev/badge/instructions/edspencer/frameit/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.05054 | $0.05054 |
| Opus 5.5 | $0.02022 | $0.02022 |
| Sonnet 5.5 | $0.01011 | $0.01011 |
| Haiku 4.5 | $0.00505 | $0.00505 |
Grade A, and why
frameit CLAUDE.md scanned grade A with 1 finding 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 2mo 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl "https://frameit.dev/api/generate?layout=open-graph&title=Hello%20World&subtitle=My%20Subtitle&format=png" -o thumbnail.png How it starts
The opening of the file, as written. The whole thing — 599 lines — stays where its author put it; the contents beside it link to each section on GitHub.
FrameIt Development Guide
FrameIt is a lightweight, open-source image generator for creating beautiful title images—thumbnails, OG images, and title cards—across multiple platforms. Built with React, TypeScript, and Tailwind CSS.
Quick Start
# Install dependencies
pnpm install
# Start development server (runs on http://localhost:4321)
pnpm dev
# Build for production (Astro SSG output to dist/)
pnpm build
# Preview production build
pnpm preview
# Typecheck Astro and TypeScript files
pnpm typecheck
Note: The development server runs on port 4321 (Astro's default), not port 5173 (Vite's default).
Technology Stack
- Framework: Astro 5 with React islands (React 19 RC)
- Language: TypeScript 5 (strict mode)
- Styling: Tailwind CSS 3 with @tailwindcss/typography for prose
- Content: Astro Content Collections with Zod schema
- Deployment: Vercel (with @astrojs/vercel adapter)
- Canvas: HTML5 Canvas API (UI) + @napi-rs/canvas (API)
- API: Vercel Serverless Functions for programmatic generation
- Analytics: PostHog (privacy-compliant) + Vercel Analytics
GitHub repo: https://github.com/edspencer/frameit
Project Structure
src/
├── pages/ # Astro pages (file-based routing)
│ ├── index.astro # Homepage with ThumbnailGenerator island
│ └── guides/
│ ├── index.astro # Guide listing page
│ └── [...slug].astro # Dynamic guide pages (content collection)
├── layouts/
│ └── BaseLayout.astro # Shared layout with meta tags, fonts, analytics
├── content/
│ ├── config.ts # Content collection schema (Zod validation)
│ └── guides/ # Guide markdown files with frontmatter
│ ├── why-og-images-matter.md
│ ├── og-image-technical-specs.md
│ ├── og-image-design-principles.md
│ ├── og-image-design-patterns.md
│ ├── og-image-automation.md
│ ├── og-image-testing-validation.md
│ ├── og-image-best-practices-checklist.md
│ └── og-image-common-mistakes.md
├── components/
│ ├── ThumbnailGenerator.tsx # Main component (React island with client:only)
│ ├── CanvasPreview.tsx # Canvas rendering wrapper
│ ├── ControlPanel.tsx # Control UI container
│ ├── Navigation.astro # Site navigation (Astro component)
│ ├── Footer.astro # Site footer (Astro component)
│ ├── GuideNavigation.astro # Prev/next guide navigation
│ ├── TableOfContents.astro # Auto-generated TOC from headings
│ └── ... (other React components)
├── lib/
│ ├── constants.ts # Platform presets and backgrounds
│ ├── constants/layouts.ts # Layout definitions
│ ├── types.ts # TypeScript interfaces
│ ├── canvas-utils.ts # Canvas drawing utilities
│ ├── layout-renderer.ts # Layout rendering engine
│ ├── posthog.ts # Analytics tracking functions
│ └── ui-state.ts # State management utilities
├── hooks/
│ └── useExampleFromUrl.ts # URL query parameter handling
└── index.css # Global styles (Tailwind imports)
api/
└── generate.ts # Serverless API for image generation
public/
├── frameit-logo.png # Site logo
├── frameit-icon.png # Favicon
├── open-graph.png # Default OG image
└── robots.txt # Search engine directives
astro.config.ts # Astro configuration with integrations
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.
- 2mo ago First seen · 599 lines · 5,054 tokens per session scan A 34b32523fe2f
frameit CLAUDE.md is an instructions file published in the GitHub repository edspencer/frameit (11 stars, last pushed 11mo ago), licensed MIT. It adds 5,054 tokens to every session, about $0.0202 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
frameit CLAUDE.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| frameit CLAUDE.mdedspencer/frameit | Instructions file | 11 | 11mo ago | MIT | A | 5,054 | Claude Code |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | yesterday | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |