caligrafy-quill
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 9 GitHub stars
Code Warn
- fs module — File system access in claude-plugin/skills/marketplace/scripts/journey.cjs
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Describe it. Approve it. Ship it. A PHP MVC framework made for coding agents: write each feature once as a capability and serve it to web pages, Vue apps, a REST API, AI agents (MCP) and Snap Cards. With Claude Code, /caligrafy-quill:idea turns an idea into a complete app online.
Caligrafy - Describe it. Approve it. Ship it.

Your idea turned into a complete app. Describe it to Claude Code, approve the
plan, and Caligrafy ships it online, with the code in your own GitHub repository. Or write it yourself: everything
Claude writes is plain Caligrafy, documented step by step.
With Claude
git clone https://github.com/caligrafy/caligrafy-quill.git myapp
cd myapp
claude
/caligrafy-quill:idea A reading list: I add books I want to read, mark them as read, and rate them from 1 to 5.
| You | Claude and Caligrafy | |
|---|---|---|
| 1. Describe it | your idea, in a sentence | a plan: the tables, every feature, who may do what, the pages |
| 2. Approve it | read the plan, change it, say OK | build every feature once and check it |
| 3. Ship it | approve the sign-ins in your browser | your GitHub repository, online at https://<name>.caligrafy.com |
Claude never asks for a password or a key, and asks before spending credits.
Quickstart with Claude has the details.
Start from a proven prompt on the marketplace, and sell yours there once it is
online (/caligrafy-quill:marketplace, 25% of every sale).
By hand
You need Git and Docker Desktop (running):
git clone https://github.com/caligrafy/caligrafy-quill.git myapp
cd myapp
.bin/caligrafer quickstart --docker --example
Open http://localhost:8080/tasks. The Quickstart then
takes you through the same app over REST and from an AI agent, and puts it online with php caligrafer.php cloud deploy.
A feature, by hand, is four small pieces:
| Piece | File | Example |
|---|---|---|
| A table | application/models/Bookshelf/create_db.sql |
CREATE TABLE IF NOT EXISTS books (...), run with php caligrafer.php sql application/models/Bookshelf/create_db.sql (a later change: php caligrafer.php migrate make <name>) |
| A model | application/models/Bookshelf/Book.php |
class Book extends Model { public $id; public $title; ... }, one property per column |
| A capability | application/services/ |
#[Capability(name: 'list_books', readOnly: true)] with Book::with('author')->paginate(20) |
| Its routes | application/config/routing/web.php |
Route::page('/books', 'Books/index', ['data' => ['books' => 'list_books']]) |
The same capability is then a REST endpoint (Route::capabilities()), a tool for AI agents (Route::mcp()) and a
function of the generated JavaScript client. Forms, sign-in, webhooks and downloads (CSV, JSON or many files as one ZIP) are one route each
(Route::form, Route::auth, Route::webhook, Route::download), and Route::action answers whatever a page or a form
cannot say. Every request is declared: an application needs no controller.
Your first capability builds one, page
included.
A complete app
Every feature is written once, as a capability (its inputs, rules and permissions), and served everywhere:
web pages, Vue apps on desktop, tablet and phone, a REST API, AI agents such as Claude or Cursor
over MCP, and Snap Cards with an assistant: Route::snap(); turns every capability into a card a person can use,
shown with card views in your app's own look (Claude writes them from your pages), and gives them a Home that shows what needs them and an assistant that answers with those cards
(Snap Cards and the assistant).
Same rules, same permissions, same audit log, whichever way it is called. A capability can also run on a
timer (scheduled jobs), reach your users with the
app closed (notifications: web push and email), or
run later, outside the request (background jobs,
with retries).
| Data | models, queries (filters, paging, related rows, every value bound), migrations, the cache |
| Pages | Pug views and page components, declarative routes, design styles, install to home screen |
| Assistant | Snap Cards: every capability as a card (Ask, Show, Go, Track, Offer) in your app's own look (card views written from your pages), a Home that orchestrates what needs you, an assistant (Claude) that keeps the conversation's context; changes only from a Confirm |
| People | sign-in with a username or an email, passkeys, permissions and tokens |
| In the box | payments, AI (OpenAI, open models, Watson), face detection, machine learning, social cards, a production Dockerfile |
| Production | a production image that sizes itself to its container, keeps database connections, preloads the framework and keeps public answers in memory; an experimental async server for the API and AI agents; a 15 MB install, with each optional SDK added by php caligrafer.php add <feature> |
| Security by default | CSRF, bound queries, inputs, passwords, sessions, token scopes and N+1 prevention with no code |
| Quality | tests that call capabilities the way every channel does, php caligrafer.php doctor |
See How Caligrafy works.
Fast and small. On the same benchmark machine (2 CPUs), Caligrafy 2.26 answers 7,998 HTML pages a second, against
4,182 for Nuxt, 1,135 for Next.js, 1,830 for Symfony and 266 for Laravel; it is faster than Next.js on every test, and
its experimental async server answers capability calls at 113,700 a second. A new project installs 13 packages and
16.6 MB, and a container uses about 35 MB
(release notes).
Learn
| If you want to | Read |
|---|---|
| See everything Caligrafy does | The documentation |
| Learn step by step, with Claude or by hand | The Caligrafy course |
| Build a feature | Your first capability |
| Every command | Caligrafer |
| Put it online | Putting it online: Caligrafy Cloud or your own server |
| Give the docs to a coding agent (Cursor, Codex, Copilot, Gemini) | AGENTS.md, llms.txt and llms-full.txt: every wiki page in one file |
| See what changed | Changelog |
| Contribute | Contributing and how the framework is built |
Community and support
- GitHub: issues for bugs and feature requests.
- Slack: join the Caligrafy community to get help and share what you build.
- Facebook: the Caligrafy group.
- Videos: the Caligrafy channel.
If Caligrafy helps you, sponsor it on GitHub or share
caligrafy.com.
Caligrafy is released under the MIT License.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found