Copy Desk

Free · Runs on your machine · Works in Claude Code and Cowork

Every client, every rule, every piece of copy. One desk.

Copy Desk is a free plugin you install into your AI. It keeps each client's rules, brand, published copy and campaigns as plain files on your computer, and renders the dashboard below from them. Nothing is hosted and nothing leaves your machine.

What you see below is the real thing.A dashboard rendered for a fictional client, Sendwell, from thirty-eight markdown files. Click the tabs. Open a document.
One workspace per client.A freelancer with four clients has four folders and one desk.
The agents do the work. You make the calls.An upkeep agent keeps what is published accurate, and Campaign Architect writes the briefs. Every flag and every draft waits for your decision.
Live demoEvery row, card and tab below is clickable. Anything with a document behind it opens in the drawer.
Copy Desk
The copywriter's desk
client · Sendwell packs · blog Sisyphus 1.0 · Sep 2026
Rendered from 38 files in ~/copydesk/clients/sendwell
Current as of Sep 11, 2026 09:40
Nothing leaves this machine

Upkeep keeps the published library correct on two axes at once. Facts move: a plan price, a carrier list, a threshold. Rules move: a banned word, a claim the client no longer makes. Either one is a trigger, and everything the upkeep agent flags lands here and waits for your decision. The SEO record gets checked on the same pass as the copy.

● The fact sweep runs Mondays on its own. The rules pass runs on the first of the month. Last sweep: Sep 8.
20
Live pieces
3
Flagged
2
In review
1
Revisions pending
14
Complete
Rules pass coverage · September14 of 20 pieces complete

Three flags need a decision.

The Monday sweep found the old $49 in three places on the pricing page, a stale competitor source on the comparison page, and a carrier count that missed DHL in onboarding email 3. Approve the fixes, modify them, or override. The rows below open the full documents.

PieceSurfaceTriggerStatusCheckedWhat changed
Pricing pagesiteB fact · plan priceflaggedSep 9Growth plan went from $49 to $59 on Sep 8. The page still shows $49 in the table, in the FAQ, and in the meta description.
Sendwell vs. ShipStationsiteA rule · claimsflaggedSep 9Competitor changed its per-label pricing. Every comparison claim on the page needs a fresh source or comes out.
Onboarding email 3 of 5emailB fact · carrier listflaggedSep 9Names four carriers. DHL was added Aug 30.
How returns workhelpA rule · refund windowin reviewSep 4Refund window moved from 14 to 30 days. Whole article reread, draft in the drawer.
Terms summarysiteA rule · refund windowin reviewSep 4Same change. Legal reviews Thursday.
International dutieshelpB fact · thresholdrevisions pendingSep 2EU low-value threshold figure corrected. Waiting on the ops lead to confirm the number.
Home pagesitenoneapprovedSep 8Rules pass clean. No figures on the page.
Why we do not charge per labelblognonecompleteSep 8

What is being written, for which surface, and where it stands. A piece moves from brief to draft to review to approved to live, and the rows below open the working documents.

PieceSurfaceStageDueNext
Returns portal landing pagesitebriefSep 25Brief written from the campaign. Waiting on two screenshots from product.
Q4 launch announcementemail · blogdraftSep 18Draft 2. The headline still leads with a feature. Rewrite to the behavior.
Customer story: Marrow CeramicsblogreviewSep 15Quote approval sent to the customer Sep 10.
Help: international dutieshelpdraftSep 16One figure outstanding, see Upkeep.
LinkedIn series: what shipping costssocialapprovedSep 22Six posts approved. Scheduling Tuesdays and Thursdays.

The library itself. Every piece is one record: the copy, the SEO fields and the schema together in one markdown file. Click a record on the left and it opens in the editor, with its search and publishing state on the right. When a record passes every check, Publish writes the finished page with the meta tags and the JSON-LD in it.

All 25Published 18Flagged 3Draft 4
Site4
Help2
Email1
Blog2

Eighteen more records live in upkeep/ as markdown files.

BIH2H3ListQuoteLinkSource

The standing rules every piece is checked against, read from brand/ and house-rules.md. When any of this changes, that is a Trigger A event and the rules pass rereads the library.

House rules

Sendwell sells shipping and returns software to small online stores. Plain, specific, a little dry. Say the number. The store owner buys, the ops lead uses it, the accountant asks about it once a quarter.

house-rules.mdupdated Aug 30open →

Voice

Write like the person who has printed ten thousand labels and is not impressed by any of them.

brand/voice.mdopen →

Words

Preferred and banned. The rules pass checks every piece against this list.

labelorderstorecarrierrateseamlesseffortlesssuperchargeunlockempowersolution
brand/words.mdopen →

Claims

  • Any delivery timeneeds a carrier source on the page
  • Any savings figureneeds the comparison shown
  • "Cheapest," "guaranteed delivery"never
  • Competitor pricingdated source, rechecked monthly
brand/claims.mdopen →

These briefs were written by Campaign Architect. Objectives are behaviors an observer can count, and the susceptibility score decides whether to spend on media or change the offer instead.

Get 60 trial stores to print a first label within 48 hours

Primary actors: store owners in trial. Key communicator: the Shopify app reviewer they already read. Series live, checkpoint 2 of 3.

baseline 31 of 140 Augsusceptibility 4stage liveopen →

Get 25 Growth customers to switch on the returns portal

Susceptibility 2. The audience has no reason to move, so this is an offer change and a product change, not a media buy. Pretest with six customers first.

baseline 0susceptibility 2stage pretestopen →

Get 12 customers to give a quote for a story page

Evaluation stage. Nine quotes in, three pending. Log of everything else that moved the number is in the brief.

baseline 2susceptibility 5stage evaluationopen →

This is the upkeep agent's schedule. Some runs fire on a calendar and some fire when a file changes. Each one says which model tier it wants before it starts, and every flag it raises lands in Upkeep for you to decide.

● 5 runs tracked · 3 on a calendar, 2 on a file change · Next: rules pass, Oct 1
RunWhenTierLastWhat it does
Fact sweepMondaysFastSep 8Every figure, name and date on every live piece, checked against the facts file. Trigger B flags.
Rules pass1st of monthStandardSep 1Words, claims and register on every live piece. Trigger A flags.
Pricing page checkon plan changeFastSep 9Fires when pricing.md changes. Found the $49.
Competitor recheckmonthlyStandardSep 9Every comparison claim gets a fresh dated source or a flag.
Claims reviewquarterlyStrongestJul 1Reads every claim as a journalist would. Next: Oct 1.

When a client has a big initiative, it gets its own folder and its own tab, called a program. Sendwell is launching a customer returns portal on Oct 7, so everything for that launch lives here: the brief, the copy, the email sequence, and the two product decisions the copy is waiting on. Read from programs/returns-portal/.

Oct 7
Launch
6
Documents
2
Open decisions

Documents

  • Launch briefapproved · Sep 3
  • Landing page copybrief · Sep 25
  • Announcement email sequence (3)draft · Sep 18
  • Help center: setting up the portalnot started
  • In-app bannerapproved
  • FAQdraft

Open decisions

  • Does the portal ship on Growth or on all plans? Decides the landing page headline and the email audience.product · by Sep 17
  • Is the returns fee shown before or after the customer chooses a carrier?product · by Sep 20

How it works

What the desk keeps track of

One folder per client

House rules, brand, the upkeep log, the pipeline, the campaign briefs. Plain markdown with a few lines of front matter. Open them in anything. Version them in git if you like.

One pack per industry

A pack is the rules that change when the industry does: the claims that need proof, the words that are banned, the regulations that apply. A client declares its packs, and the upkeep agent reads them on every pass, so the rules are followed and the facts stay accurate.

Every piece keeps its record

Because this is a copywriter's desk, a piece keeps its full working record and not just the prose. The SEO fields live in the front matter, and the same file carries the JSON-LD schema, the FAQ block that becomes FAQPage markup, and the llms.txt entry that tells AI search engines which page to cite. When an answer engine quotes your client, it quotes the page you chose.

title tagmeta descriptionfocus keywordcanonicalschema typeFAQ blockllms.txt pillarreview-by date

Who does the work

Two agents and you

U

The upkeep agent

The upkeep agent keeps everything you have already published accurate. When a rule changes, like a product name or a claim the client no longer makes, it rereads every piece against the new rules. That is the rules pass. When a fact changes, like a price or a carrier list, it finds the sentences that carry that fact and checks only those. That is the fact sweep.

It checks the SEO record the same way it checks the copy, because a meta description that still sells last quarter's offer is just as wrong as a paragraph that does.

C

Campaign Architect

Campaign Architect writes the campaign brief the way influence professionals write one. It sets objectives as behaviors you can count instead of awareness goals, and it analyzes the audience by starting from what those people already do and why. Then it scores how open they actually are to being moved, which tells you whether to spend on media or fix the offer instead.

It works under a hard ethical floor: no deception, no fear framing, no manufactured urgency, and no claim your audience can refute with a screenshot.

✓

You

Everything the agents produce comes to you before it goes anywhere. You approve, modify or override every flag and every draft, and nothing is published, patched or retired without you.

The agents handle the checking and the analysis. The judgment stays yours, along with the client relationship and the byline.

JobTier the desk recommendsWhy
Fact sweepFastMechanical, many files, little judgment.
Rules passStandardPattern matching with some judgment.
Campaign briefStrongest availableThe whole method rests on the analysis.
Render the deskFastIt is a transform.

The desk recommends the tier and you decide what runs on what, the same way you decide on every flag and every draft.

Why it exists

One person, all the desks.

Newsrooms solved content quality with a chain of desks. The writer filed, the editor shaped the story, the copy desk checked every name, figure and claim, the SEO editor handled search, and an editor in chief permitted the piece through. Then the industry spent a decade cutting those desks to save money, and the checks landed on whoever was left. Anyone writing for clients today works in that same condition: one person doing the work of every desk, with no chain behind them.

Copy Desk gives that chain back as checks one person can run, without a server, an account, or a subscription. Install it, add a client, and the first sweep tells you what is already wrong.