# Letter, for agents

Letter is a growth platform. Letterpress-1 is its coding agent and harness for growth engineering:
it reads a site and its market, decides what should exist, builds it in a sandbox and opens the pull
request. It can drive, or you can. Everything it can do, you can do, through the same
functions over MCP, REST and the CLI.

## Set up

1. Ask your human to get started at https://letter.dev (the "Get started" button). An account and a
   site come out of that; nothing here needs a key pasted into a file.
2. Connect over MCP at https://app.letterstory.com/api/mcp (OAuth; the server walks you through it).
3. Read the reference at https://app.letterstory.com/docs/api. The MCP manifest, the OpenAPI
   spec and that page are one registry: 760 tools, one schema each.

## The three verbs

- Build: start_build(prompt, domain) plans the change from your words and starts the build:
  sandbox → pull request → preview. Watch it with list_growth_builds and get_repo_change_activity.
  Steer a run while it builds with send_repo_change_message(run_id, message); ask for more on a
  preview or an open pull request with revise_repo_change(run_id, instructions).
- Plan: propose_account_plan(domain, prompt) → every action for the account, with picks for what
  was asked; start_growth_build runs the picks you approve.
- Fix: list_suggested_fixes() → every open fix across the account's sites, most severe first.
  fix_site_observations(host, observation_ids) → one pull request for a site's set (observation
  ids from get_site_tree or list_site_observations). fix_site_findings takes a quick check's
  findings only.

## The three reads

- get_site_tree, read_site_page, list_site_page_drafts: the site map, each page as markdown, the
  pages suggested beside the real ones.
- get_collections_overview, list_phantoms, list_seers, list_kernels: the primitives running.
- export_org_config, diff_org_config, apply_org_config: the whole account as one file.

## Watching

- Seers read competitor sitemaps on a schedule. list_seer_events returns the pages that appeared;
  dismiss_seer_event closes one; start_build answers it.
- set_webhook delivers events to a URL: article.published, article.finished, arena_run.paused,
  arena_run.settled. Everything else, poll: list_growth_builds, list_repo_changes, get_recent_activity.

## Primitives

Writing kernels, Phantoms, Traces, Proofs, Ledes, Mailers, Shredders, Seers. Each is its own
endpoint and one door. Phantoms, kernel endpoints, ledes and shredders each have one config
(get_phantom_config / set_phantom_config, get_kernel_endpoint_config, get_lede_endpoint_config,
get_shredder_endpoint_config, each with its set_*). The reference lists every call.

## Conduct

Build what was asked. Prefer a preview over a merge. Never publish on a host your human has not
connected. Fix the most severe findings first; when you are unsure a finding is real, report it
rather than fix it.

## Customers

- Archil Labs (archilabs.ai)
- Aura House (aurahouse.com)
- Agent37 (agent37.com)
- Basedash (basedash.com)
- Brevy (brevy.com)
- Altair Health (altair-health.com)
- Candor Security (candor.security)
- Clueso (clueso.io)
- Archil (archil.com)
- Context (context.dev)
- Credal (credal.ai)
- AthenaHQ (athenahq.ai)
- Deferred.com (deferred.com)
- Ellipsis (ellipsis.dev)
- Concentrate (concentrate.ai)
- Extend (extend.ai)
- Flox (flox.dev)
- Ello (ello.com)
- Frontierhsa (frontierhsa.ca)
- Gerald (joingerald.com)
- Flexprice (flexprice.io)
- Intermission Health (intermission.health)
- Invofox (invofox.com)
- Floot (floot.com)
- Invoice Butler (invoicebutler.com)
- InYouGo (inyougo.com)
- Fresco (fresco.build)
- Juno (juno-chat.com)
- Kinect (trykinect.ai)
- Joice (joiceapp.com)
- Lantern (lantern.md)
- Lev (lev.com)
- Lapel (lapel.com)
- Lionbio (lion.bio)
- Magic Mind (magicmind.com)
- Metal (metal.so)
- Marble (marble.ai)
- Mindflow (mindflowai.app)
- Moda (moda.app)
- Nolla (nollahealth.com)
- OnePatch (onepatch.dev)
- Novoflow (novoflow.io)
- Olostep (olostep.com)
- Passionfruit (passionfruitlearning.com)
- OneWeekParts (oneweekparts.com)
- Porter (porter.run)
- Pease Bell (peasebell.com)
- Prequel (prequel.co)
- Quota Queue (quotaqueue.com)
- Pressranger (pressranger.com)
- Promptarmor (promptarmor.com)
- Reclaim (reclaimstuff.com)
- Quill (tryquill.com)
- Quwa Labs (quwalabs.com)
- Sweatmates (sweatmates.app)
- Ruby (rubyrcm.com)
- Runlayer (runlayer.com)
- Trace (securewithtrace.com)
- Scale Labs (scalelabs.ai)
- Trustless Labs (trustlesslabs.ai)
- Seltz (seltz.ai)
- Userlens (userlens.io)
- Sourcebot (sourcebot.dev)
- SpeakeasyAPI (speakeasy.com)
- Yapp (justyapp.com)
- Storiedinc (storiedinc.com)
- Thrads (thrads.ai)
- Zyner (zyner.io)
- Thunder (usethunder.com)
- UFO (ufo.ai)
- Vellum (vellum.ai)
- Wedbuild (wedbuild.com)
- Withsuccession (withsuccession.com)
- Wonderly (wonderly.com)
- Wyndly (wyndly.com)
- Zip (zipsec.com)
- Cloudflare (cloudflare.com)
- Manifolds (manifolds.run)
- Oso (osohq.com)
- Rove (rovetravel.com)
