[Agentic content engine]

You ship it.
Pluto markets it.

Connect GitHub, docs, and X. Pluto learns what changed, learns how you write, and drafts grounded posts for every feature, release, and product update.

[How it works]

From product change
to publish‑ready post.

No briefs. No blank page. No generic AI launch copy. Pluto sits between your repo and your audience and keeps both in sync.

01 / 03
pluto/api
main · 4m ago
docs/voice-memory.mdx
edited · 12m
@plutohq
94 posts indexed

Connect your sources

Install the GitHub App, add your docs, connect X. Pluto keeps a searchable memory of what your product does and what shipped this week.

  • GitHub repos & PRs
  • Notion, Markdown, MDX
  • X / Twitter history
02 / 03
diff
+ 90d voice window
− single‑seed prompt
voice match · 94%
“voice memory v2 is out. it now uses your last 90 days of posts instead of one seed.”

It learns what changed and how you write

Every draft is grounded in real commits and docs. Your past posts become voice examples, so drafts pick up your phrasing — not an AI cadence.

  • Grounded in real diffs
  • Voice memory from 90d of posts
  • Per‑agent voice overrides
03 / 03
thread · 3 posts
per‑agent voice overrides shipped. tighter voice for changelogs, looser for launches. one workspace, multiple personalities.
Edit
Publish to X

Generate, review, publish

Agents draft when releases land. You review in one feed, edit in the editor, and publish to X — single posts or full threads.

  • Release‑triggered agents
  • Editorial review queue
  • Direct publish to X
[The feed]

Every commit,
one decision away from a post.

Pluto's review queue is your single surface for product → marketing. Drafts arrive grounded in the real diff, with status, voice match, and the underlying source.

  • GroundedEach draft cites the commit, doc, or PR it came from.
  • TriggeredRelease agents draft on push; you only see the result.
  • ReviewableApprove, edit in‑line, or send back with a one‑line note.
pluto / feed
connected
In progress · 2
Release agent·feat(api): server-sent events for streaming·just now
Pluto is drafting a post about the new SSE endpoint, grounded in the PR description and changelog…
Generating
Manual draft·docs: walkthrough for Voice memory·2m
Voice memory now uses your last 90 days of posts instead of a single seed example. Drafts pick up your phrasing, pacing, and the way you handle replies.
draft · thread (1/3)
voice memory v2 is out. it now uses your last 90 days of posts instead of one seed example.

drafts pick up your phrasing, the way you open a thread, and how you handle replies — not a generic launch voice. ↓
In review
Today · 2
Release agent·fix: dedupe duplicate webhook deliveries·1h
Webhooks now dedupe on delivery ID for 24h. If your endpoint 200s twice, you only get one event.
Published
Release agent·feat: per-agent voice overrides·3h
Each agent can now have its own voice profile. Use a tighter, terser voice for changelog posts and a looser one for launch threads.
Approved
[What's included]

Launch content,
from what ships.

Product‑aware drafts

Repos, docs, and product sources are the real context. Posts come from features, fixes, and workflows that actually shipped.

Voice memory

Your last 90 days of posts shape new drafts. Phrasing, pacing, replies — yours, not a default AI marketing voice.

Launch‑ready threads

Single posts or 3–7‑post threads, with hook, payoff, and a call out where it makes sense. No filler stats.

Editorial review

Every draft passes a reviewer pass that strips filler and tightens hooks before it reaches the queue.

Release‑triggered agents

Agents listen to commits, releases, and source updates and draft on the events that matter.

Publish to X

Approve and publish — single posts or full threads — directly to X, or hand back to a writer for the last 5%.

[Voice memory]

Drafts that sound like the rest of your timeline.

Pluto reads your last 90 days of posts and learns the way you actually write — lowercase intros, tight hooks, the way you stack replies. New drafts inherit it. You stop fighting AI cadence.

voice profile · plutohq · 94% match
// learned signals
opens.lowercase = true
hook.length = "≤ 60 chars"
uses_emoji = false
punctuation.dashes = "—"
thread.cadence = "setup → diff → call"
// last sample
"voice memory v2 is out. it now uses your last 90 days of posts — not one seed."
[Get started]

Ship product.
Get the post drafted.

Book a 20‑minute walkthrough. We'll connect a repo, run a release agent on your last 5 commits, and show you the drafts.