Cowliss is in beta: features and pricing may change.
Changelog
To upgrade a project: npm install --save-dev @cowliss/cli@latest.
What changed in each version of @cowliss/cli after 0.16.0, newest first. Earlier versions are listed on npm.
0.39.0 (2026-11-08)
Section titled “0.39.0 (2026-11-08)”Features
Section titled “Features”- One MCP client table, and the marketing site readable by agents
0.38.0 (2026-11-07)
Section titled “0.38.0 (2026-11-07)”Features
Section titled “Features”- Use with your agent on every entity page, MCP setup per client
0.37.0 (2026-11-06)
Section titled “0.37.0 (2026-11-06)”Features
Section titled “Features”- A sendWebhook step names its webhook with
webhook
0.36.0 (2026-11-06)
Section titled “0.36.0 (2026-11-06)”Features
Section titled “Features”- A refused call keeps its validation issues
- emailTrait names the trait-only email reader
- A cow test scenario names its trigger’s properties
- A refused push names each failing resource and field
- cow init’s example sends from the org’s verified domain
- A confirmed event-list conflict survives other app edits
- Enrollment status answers none before any enrollment has run
- Validation issues name resources on the push routes only
0.35.0 (2026-11-02)
Section titled “0.35.0 (2026-11-02)”Features
Section titled “Features”- Apps: An app may name the trait that holds an external unsubscribe URL
- An external unsubscribe URL rides normalized and within a header
0.34.0 (2026-11-02)
Section titled “0.34.0 (2026-11-02)”Features
Section titled “Features”- Write the email footer in the Brand’s language, with room under it
0.33.0 (2026-10-27)
Section titled “0.33.0 (2026-10-27)”Features
Section titled “Features”- Domains: Exact-string claims and DNS takeover of a held domain
0.32.1 (2026-10-26)
Section titled “0.32.1 (2026-10-26)”- Every command’s help lists –org and the other global flags
0.32.0 (2026-10-26)
Section titled “0.32.0 (2026-10-26)”Features
Section titled “Features”- One login covers several organizations
0.31.1 (2026-10-26)
Section titled “0.31.1 (2026-10-26)”- The OpenAPI document carries the lockstep package version
0.31.0 (2026-10-26)
Section titled “0.31.0 (2026-10-26)”Breaking changes
Section titled “Breaking changes”- A confirmed conflict names what it accepts
- Validate Liquid templates at read and drop the guest layer
- A push is one transaction over inline resources
- A source flag on every resource and the Liquid template version
Features
Section titled “Features”- Dashboard writes events, purposes and segments; Liquid templates read-only
- Blueprints ship Liquid HTML emails
- events, purposes and segments writable over the API
- Render Liquid templates
- A Liquid body is stored without its edge newlines
- The code-pushed prompt stops naming cow build
- A Liquid or doc template gets the leave links it mentions
0.30.0 (2026-10-21)
Section titled “0.30.0 (2026-10-21)”Features
Section titled “Features”- Partner API, plan override, suspend and purgeOrg (ADR 0039)
- Close the partner API review findings (ADR 0039)
- cow status says an automation, not a automation
0.29.0 (2026-10-20)
Section titled “0.29.0 (2026-10-20)”Breaking changes
Section titled “Breaking changes”- Automations are JSON definitions
- Rename journeys to automations
Features
Section titled “Features”- Agent prompts write automations as JSON definitions
- emails/*.md and *.maily.json doc templates
- Doc templates beside module templates
- Automation steps and run mapping
- automations.create and definition updates
- Automation definitions and a pure interpreter
- A run’s profile read belongs to the step that names the profile
- Cap what a stored source may unpack to
- Cap automation rule size and depth, drop json-logic’s log
- cow pull restores the newest push alone
0.28.1 (2026-10-19)
Section titled “0.28.1 (2026-10-19)”Features
Section titled “Features”- Accept a Clerk OAuth access token as a third credential
- The contract-driven MCP server as a published @cowliss/mcp
- Review fixes: standards docs, generated MCP changelog, constants in the route
0.28.0 (2026-10-19)
Section titled “0.28.0 (2026-10-19)”Breaking changes
Section titled “Breaking changes”- A journey key is unique per app, and every key read names its app
- Review fixes and close effort 45
- cow plan refuses –prune for a caller who may not prune
0.27.0 (2026-10-19)
Section titled “0.27.0 (2026-10-19)”Features
Section titled “Features”- Broadcasts: A doc preview takes a header
- Journeys: Last run and emails sent in 30 days on journey stats
- Broadcasts: Markdown out and in, and a design prompt for an agent
- Broadcasts: A header per broadcast, logo and name, name, logo or none
- Broadcasts: One starter email with demo blocks, no template select
- Overview: The org’s last 30 days on one route, in the CLI, MCP and Home
- A Broadcasts card on Home, one row per list across apps
- cow init writes an example journey and an AGENTS.md
- Agent prompts ask for a journey, and a journey task prompt
- Broadcasts: Subject optional until send, every test send says [test]
- Tool titles, read-only and destructive hints, server instructions
- Editor commands reach the live editor, and Edit source replaces the paste menu
- Journeys: Journey stats say lastStartedAt, not lastRunAt
- Lists: Subscribers show the address a send would use
- Sends fall back to the newest email identifier
0.26.0 (2026-10-16)
Section titled “0.26.0 (2026-10-16)”Features
Section titled “Features”- Dashboard: Signup form prompt and preview, how to send with a new key
- Domains: Download the DNS records as a zone file or CSV, copy relative names
- Domains: Make DNS names relative to the zone, keep the DMARC row out of imports
0.25.0 (2026-10-15)
Section titled “0.25.0 (2026-10-15)”Features
Section titled “Features”- Apps: A Brand tab for the business, look, sender and language
- Subscribe: Brand and translate the confirm email and hosted pages
- Brand: Fit the logo into a 200x64 box from its measured size
- Broadcasts: Email branding label, editor R2 image upload, footer tooltip and template picker
- Brand: Apply the review of the Brand effort
0.24.0 (2026-10-14)
Section titled “0.24.0 (2026-10-14)”Features
Section titled “Features”- cow apps logo upload reads –file and checks it before sending
- Broadcasts: Announcement starter template, clearer unset colour swatches
- Apps: Upload a broadcast logo from the look dialog
- Journeys: Throttle and meter api.restart, cap journeys per org
- Broadcasts: Fresh blank template doc, https-only logo url, announcement button
0.23.0 (2026-10-13)
Section titled “0.23.0 (2026-10-13)”Features
Section titled “Features”- Spam strikes pause an org on one 1h/4h/16h/64h ladder
- Score every email with Rspamd after render, skip on reject
- Send a multipart form body as FormData
- Broadcasts: Open tracking and real broadcast stats
- Broadcasts: Stats contract with the row’s counts
- Broadcasts: Fan-out workflow, schedule, cancel and credit pre-flight
- markdownToMaily emits Maily 2 docs
- Broadcasts from markdown, preview, show, and MCP tools
- Markdown to Maily, docHashOf, composer url, apps look
- Broadcasts: Render with Maily 2.0.0-beta.7
- Broadcasts: drafts, Maily render, app look and default sender
- Subscribe: Hosted signup page, snippet and double opt-in
- Lists: Csv import into a list
- Lists: Dashboard-created lists and the subscriber read model
- Broadcasts: Reserve credit across sends, claim recipients, tidy stats
- Lists: A CSV import never re-subscribes someone who unsubscribed
- Subscribe: One confirm email per address, none while sending is paused
- Broadcasts: Review fixes from the effort 38 review
0.22.0 (2026-10-12)
Section titled “0.22.0 (2026-10-12)”Breaking changes
Section titled “Breaking changes”- Delete the catalog, violations, strict mode and the held queue
Features
Section titled “Features”- App setup prompt, cow.json and named .env builders
- App health names its .env source, deliveries stats narrow to one app
- The user page’s identify call and debug prompt builders
- A user’s timeline, and executions follow a merge
- Deliveries: Daily outcome split on deliveries stats, per-app split on event stats
- The event page’s debug prompt builder
- What an event caused and the user’s events around it
- cow status prints the app’s health checks first
- Apps: App health endpoints with six checks and agent prompts
- Events: Event names per app against the cow.json list
- Record each key’s use per app and the calling client on events
- Events in cow.json, stored per app on push
- Users: List rows carry last event, live journeys and last delivery
- The event page names a key past the first page of keys
- cow status prints the cow.json lines for new unlisted event names
- Keep the key secret out of the Generate key agent prompt
- Events: System names count as listed in cow.json
- Spend past the allowance draws the wallet down for good
0.21.0 (2026-10-02)
Section titled “0.21.0 (2026-10-02)”Features
Section titled “Features”- App and sending-domain limits, and the root-domain warning
- Subscribe to Plus, mirror the subscription, and meter by plan
- Plan constants, plan_limit, meta warnings and root-domain helper
- Emails: Test sends with
test: trueand reserved test addresses
- A half-typed domain is not taken for a root
0.20.0 (2026-10-02)
Section titled “0.20.0 (2026-10-02)”Features
Section titled “Features”- cow.templates.preview renders a template with your own props
0.19.0 (2026-10-02)
Section titled “0.19.0 (2026-10-02)”Features
Section titled “Features”- emails.send takes an idempotencyKey and creates the person it emails
- cow.preferences.get and set, the hosted preferences page as data
0.18.1 (2026-10-01)
Section titled “0.18.1 (2026-10-01)”No user-facing changes.
0.18.0 (2026-10-01)
Section titled “0.18.0 (2026-10-01)”Features
Section titled “Features”- A hosted email preferences page, linked from every footer and from the app
- Code an older CLI pushed says when it stops running
- /v1/protocols says whether each guest protocol has drained
- The page after an unsubscribe asks, optionally, why
- An app can carry a public name and a return URL for its unsubscribe pages
- The unsubscribe page leads with Keep me subscribed, and the page after it can undo
- cow test passes a project with no journeys
- The API URL examples name no localhost origin, so the bundle passes check:packages
0.17.0 (2026-10-01)
Section titled “0.17.0 (2026-10-01)”Breaking changes
Section titled “Breaking changes”- An email declares its purpose in place of a send class
- Consent: A declared purpose belongs to the app that declares it
- Build the domain prompt as a task with a DNS provider
- Build app prompts as tasks with a plain-language summary
Features
Section titled “Features”- Emails: cow.emails.send can address a profile instead of an address
- Emails: Footer offers leaving one purpose or everything, and templates get unsubscribeAllUrl
- Consent: A granted purpose turns its root on, and a revoked root turns off its names
- cow login keeps one session per API URL instead of replacing the last one
- Two apps can each push a template with the same key
- An outdated cow says so, with the upgrade command
- A changelog in each package and on the docs site
- cow test runs every scenario when no journey is named
- Search executions, the review queue and the credential keys with ?q
- Add failures.stats and a failures card on the overview
- Search the delivery log and fold its rarer filters into a popover
- Search the delivery log by recipient
- List only a family’s working keys with status=active
- Add per-app delivery stats
- Count an app’s journeys and templates
- cow push links each template to its page under the app that pushed it
- Consent: Read a developer’s platform profile in the app the platform writes to
- Store nothing when cow push is handed the tree the app last pushed
- Cancel a pruned journey’s runs even when none were live at the prompt
- Refuse cow push –prune unless an admin is signed in
- Accept a backfill older than the retention window
- Require a key name of at least 3 characters