cuttlefish
Describe your site. An agent builds it.
An agentic static site generator for personal sites and portfolios —
you write the content, agents handle the look and layout.
cuttlefish changes the way your site looks in a blink — just like the fast, shape-shifting sea creature it's named after.
It has the building blocks you'd expect from a static site generator — content types, taxonomies, templates — and one deliberate omission: there's no theme to install, no CSS framework, and no build step for your styles and scripts. Your whole site is a handful of plain-text files and one stylesheet you never open by hand.
Want a minimal layout with a teal accent? A two-column projects grid? Bigger headings? Describe it, and a coding agent edits the files to match. The look of your site is something you talk your way into, not something you hand-tune.
How it works
Every site ships an AGENTS.md: the agent's source of truth for the file map, the config.toml schema, the templating rules, and the styling conventions. Point a coding agent at it and say what you want —
Switch to a serif font, give the header a dark background, and feature my three latest posts on the home page.
— and it edits the config, templates, and stylesheet to match. You review a diff, not a config dialect; there are no theme docs or class names to memorize. Then ctf build renders everything to public/, and ctf serve previews it live.
Quick start
Requires Python 3.11+.
pipx install cuttlefish-ssg
ctf init my-site
cd my-site
ctf build # render to public/
ctf serve # live-reloading preview at http://localhost:8000
Features
- Describe, don't hand-tune: No themes, no CSS framework, no build step — one plain stylesheet an agent edits to match what you describe.
- Agent-first: Every site ships an
AGENTS.mddocumenting its schema and conventions, so an agent can author and style it reliably. - Rebuild fast: Incremental builds cache the last render and rebuild only what changed — editing a post's body never touches your listing pages.
- Everything else you'd expect: Content types, taxonomies, Markdown with TOML front matter, standalone pages, pretty permalinks with pagination,
sitemap.xmlandrobots.txt, and a live-reloading dev server. - Recipes: A library of copy-in feature guides — reading time, breadcrumbs, comments — that an agent applies by editing your templates, CSS, and config. No plugin system, just packaged instructions.
Usage
| Command | What it does |
|---|---|
ctf init <dir> |
Scaffold a new site into <dir>. |
ctf build [root] |
Render the site to public/. Add --force to ignore the cache, --drafts to include drafts. |
ctf check [root] |
Validate config, content, and templates without writing anything. Exits non-zero on error — handy in CI. |
ctf serve [root] |
Preview at http://localhost:8000, live-reloading on change. Drafts on by default; set --port to change the port. |
root defaults to the current directory, so you can run ctf build and ctf serve from inside your site.
Documentation
Visit https://acaibowlz.github.io/cuttlefish/ to view the full documentation.
License
Released under the MIT License
Release files for cuttlefish-ssg 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cuttlefish_ssg-0.1.4.tar.gz | 1.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cuttlefish_ssg-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.4 MB
Release files / cuttlefish_ssg-0.1.4.tar.gz
| Download URL | cuttlefish_ssg-0.1.4.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b788656ad85a51460a8c287f724591ccaf64d7a133ad882acfb26cf61bd896d0
|
|
BLAKE2b-256 checksum How to use checksums |
03e76a592c64b1517c95290019b4728f72c4f210c234468642cb18fe8f72b70f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / cuttlefish_ssg-0.1.4-py3-none-any.whl
| Download URL | cuttlefish_ssg-0.1.4-py3-none-any.whl |
|---|---|
| Size | 77.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0d7a0742892384ac4fcb45190af228cdc7692cf39ed747a1942d149bd166491
|
|
BLAKE2b-256 checksum How to use checksums |
190e0edec1c06081f19f4f2c614ee095699fe1ff34b9f72bea255afa768ae141
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|