1994 / ghostwriter-statamic
Learns a site's tone of voice and image style from what it has published, then drafts new entries in that voice from a short brief and a conversation, finds or makes images to match (or licenses stock photos from your own account), walks you through finishing each page, and plans what the site is mi
Package info
github.com/1994limited/ghostwriter-statamic
Type:statamic-addon
pkg:composer/1994/ghostwriter-statamic
Requires
- php: ^8.3
- ext-gd: *
- 1994/ghostwriter-core: ^1.10
- guzzlehttp/guzzle: ^7.8|^8.0
- guzzlehttp/psr7: ^2.6|^3.0
- league/commonmark: ^2.4
- statamic/cms: ^6.30
- symfony/yaml: ^7.0 || ^8.0
Requires (Dev)
- laravel/pint: ^1.20
- orchestra/testbench: ^10.0|^11.0
- phpunit/phpunit: ^12.0
Suggests
- ext-imagick: Sends smaller copies of images to the model.
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v1.3.0
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- dev-release/1.3.0
- dev-chore/require-core-1.10
- dev-fix/slug-race
- dev-fix/overview-polish
- dev-fix/marketplace-review
- dev-feat/link-candidates
- dev-fix/e2e-coverage-bugs
- dev-connections/settings
- dev-seo/suggest-links
- dev-seo/row-6
- dev-seo/search-meta
- dev-fix/doc-bugs
- dev-seo/writer-links
- dev-seo/internal-links
- dev-seo/link-index
- dev-gaps/prompted-images
- dev-e2e/fake-scenarios
- dev-fix/label-covers-text
- dev-fix/phantom-gap
- dev-seo/headings
- dev-fix/link-hints-with-spaces
- dev-guide/fit-and-point
- dev-layouts/what-changes
- dev-preview/one-scroll
- dev-asks/structured-2
- dev-preview/scroll
- dev-asks/structured
- dev-brief/choose-examples
- dev-test/brief-retry-any-count
- dev-suggest/unreadable-words
- dev-comments/ui
- dev-suggest/revisit
- dev-suggest/guide
- dev-suggest/ui
- dev-ci-core-main
- dev-fix/keep-bard-sets
- dev-panel/remove-images-section
- dev-preview/tab
- dev-preview/server
- dev-spike/preview-statamic
This package is auto-updated.
Last update: 2026-10-16 19:02:31 UTC
README
A Statamic 6 addon that learns how your site writes and what its pictures look like, then drafts and edits entries in that voice from a short brief and a conversation, beside the entry form.
What it does
- Voice guide. Reads your published entries and writes a guide to how the site sounds, which you can edit or change by asking.
- Kinds of content. Suggests the kinds of entry each collection holds, such as a project story or a service page, and learns each one as a brief of its own.
- Writing and editing in conversation. Write with Ghostwriter turns a short brief into a draft; Edit with Ghostwriter changes an existing entry. Ask for changes, or click any writing to change it, then put it into the form to check and save. Nothing is published for you.
- House style. New entries copy what your existing entries agree on: block settings, links, and how rich text is dressed.
- Photo search. Finds free photos for any assets field, ranked by the model against the page's words and the images already in that place, with names, alt text and credits from the library.
- Stock photos. Paid photos go into a page as a labelled preview, licensed from your own account with License & replace, which swaps in the full image and keeps its alt text. Pages can't be published with a preview still in them, and a ledger records every stock photo and its licence. Shutterstock (API plan required); Getty Images and iStock are coming; a demo library lets you try it without an account. Licences are charged to your own account with the library. See Stock photos.
- Finish this page. Ghostwriter never makes up a price, a date or where a button goes: it marks the place (
[[ask: adult ticket price]], a link to#gw-link:contact-page, a striped image placeholder) and the form counts what's left by Save. A guide walks you through each gap, with the field highlighted and the Ghostwriter mark flying to it, and a page can't be published until they're done. See Finish this page. - Make an image. Makes a picture in your site's own style, with an OpenAI or Gemini key.
- Content plan. Suggests entries the site is missing, to keep or dismiss, each ready to draft.
- Shared conversations. With Statamic Pro, everyone with access can carry on a piece, with each message showing who sent it.
Requirements
- PHP 8.3 or later, with GD
- Statamic 6.30 or later. Roles, permissions (including who may license stock photos) and shared conversations need Statamic Pro; on Core (Solo) the one super user has full access.
- Optional: a Shutterstock API plan for paid stock photos, billed by Shutterstock to your account.
- An API key for Anthropic (Claude), OpenAI (ChatGPT) or Google (Gemini). Its use is billed to your account by that provider, pay as you go (Gemini has a limited free tier). See API keys.
- A queue worker, or PHP-FPM on the
syncqueue
Installation
composer require 1994/ghostwriter-statamic php artisan vendor:publish --tag=ghostwriter-statamic --force
Then set up your key under Tools → Ghostwriter → Connections (or add it to .env, for example ANTHROPIC_API_KEY=sk-ant-...), run php artisan migrate so keys are kept in the database, and keep a queue worker running (php artisan queue:work --timeout=960). See Installation for the details.
Quick start
- Open Tools → Ghostwriter → Get started in the Control Panel.
- Check Connect a model names your provider, and choose the collections to write for.
- Write the voice guide, and read it over.
- Open a collection's Create Entry screen and click Write with Ghostwriter.
- Reply with a working title and a line or two, check the brief card, Looks right, start writing, then Use this draft and save.
Documentation
The full documentation is in docs/: setting up, writing and editing, the guides, kinds, images, the content plan, and reference pages.
Providers and privacy
Ghostwriter writes with Claude, ChatGPT or Gemini, on your own account and key, and can make images with ChatGPT or Gemini and search Openverse, Unsplash, Pexels and Pixabay. It sends nothing until someone in the Control Panel asks for something, keeps everything in files in your project, and logs each call's tokens and time but never the words. See API keys and Privacy and data.
Support, changelog and licence
- Support: GitHub issues, or hello@1994.co.uk.
- Changelog: CHANGELOG.md.
- Licence: proprietary, © 1994 Limited. See LICENSE.
- Developing: run
composer installbeforenpm ci(npm takes Statamic's UI package fromvendor/), thennpm run build(the build inresources/distis committed) andvendor/bin/phpunit. Tests fake every model call, so they need no key. - CI and core: core and the addons are developed and released together. The "core main" CI job runs the tests against core's
mainbranch (aliased to1.99.0so it satisfiescomposer.json), so a pull request that uses unreleased core changes can merge when "core main" passes, even if the jobs that install the released core from Packagist fail. A release pull request needs every job green: release core first and raise the core constraint incomposer.json.
