Getting Started
Cryyer sends automated email updates to your users, with per-product voice powered by LLM-drafted content.
Quickstart
Section titled “Quickstart”For humans — interactive wizard
Section titled “For humans — interactive wizard”Run this inside your project repo:
npx @atriumn/cryyer initThe interactive setup walks you through product name, GitHub repo, voice/tone, LLM provider, subscriber store, and API keys — then creates everything you need:
products/*.yaml— product configuration.env— API keys and settingssubscribers.json— subscriber list (when using JSON store).gitignore— ignores.envand data files.github/workflows/— release pipeline workflows (optional)
For CI — flags + env vars
Section titled “For CI — flags + env vars”npx @atriumn/cryyer init --yes \ --product "My App" \ --repo owner/my-app \ --voice "Friendly and concise" \ --pipeline weeklyNon-interactive mode (--yes or CI=true) skips all prompts. Secrets are read from environment variables (ANTHROPIC_API_KEY, RESEND_API_KEY, etc.) instead of being written to .env. Defaults: anthropic LLM, json subscriber store, resend email, no workflows.
Available flags: --product, --repo, --voice, --llm, --subscriber-store, --email-provider, --from-email, --pipeline (weekly, release, or both).
For agents — write files directly
Section titled “For agents — write files directly”AI coding agents (Claude Code, Cursor, etc.) can skip init entirely and write the files themselves. All you need is a products/*.yaml file — see Product Configuration for the schema.
Validate and preview
Section titled “Validate and preview”Then validate and preview:
npx @atriumn/cryyer check # validate your setupnpx @atriumn/cryyer run --dry-run # preview a draft emailWhen you’re ready to run for real:
npx @atriumn/cryyer run # full pipeline: gather → draft → sendOr run the two stages separately:
npx @atriumn/cryyer draft # generate drafts → create GitHub issuesnpx @atriumn/cryyer send # send emails when a draft issue is closedFor release-triggered emails, use the file-based commands:
npx @atriumn/cryyer draft-file --product my-app --version 1.2.0 # generate a draft filenpx @atriumn/cryyer send-file drafts/v1.2.0.md --product my-app # send from draft fileYou can also create products/*.yaml files manually — see Product Configuration for all fields, and Environment Variables for all env vars.
How it works
Section titled “How it works”Cryyer supports two automation pipelines:
Release pipeline — sends emails when you publish a release. A draft file is auto-generated on each release PR, you review it, merge to publish, then approve the send in GitHub Actions. Best for release notes.
Weekly pipeline — sends digest emails on a schedule. Drafts are created as GitHub issues for review. Close the issue to approve and send. Best for recurring updates.
Both pipelines gather GitHub activity (merged PRs, releases, notable commits), generate email drafts via your chosen LLM, and send through Resend or Gmail. If your product has multiple audiences, each audience gets its own draft with a tailored voice.
See GitHub Actions for setup details.
Public repos
Section titled “Public repos”If your repo is public, don’t use the default JSON subscriber store — subscribers.json would need to be committed, exposing subscriber emails. Use the GitHub Gist store instead. It keeps the same JSON format in a private Gist:
SUBSCRIBER_STORE=gistGITHUB_GIST_ID=your_gist_idGITHUB_TOKEN=ghp_your_pat # classic PAT with gist scope (fine-grained PATs don't work)See GitHub Gist Store for setup steps.
Next steps
Section titled “Next steps”- Configure your products
- Choose a subscriber store
- Pick an LLM provider
- Set up GitHub Actions for full automation