Free · Runs on your machine · Works in Claude Code and Cowork
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.
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.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.
| Piece | Surface | Trigger | Status | Checked | What changed |
|---|---|---|---|---|---|
| Pricing page | site | B fact · plan price | flagged | Sep 9 | Growth 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. ShipStation | site | A rule · claims | flagged | Sep 9 | Competitor changed its per-label pricing. Every comparison claim on the page needs a fresh source or comes out. |
| Onboarding email 3 of 5 | B fact · carrier list | flagged | Sep 9 | Names four carriers. DHL was added Aug 30. | |
| How returns work | help | A rule · refund window | in review | Sep 4 | Refund window moved from 14 to 30 days. Whole article reread, draft in the drawer. |
| Terms summary | site | A rule · refund window | in review | Sep 4 | Same change. Legal reviews Thursday. |
| International duties | help | B fact · threshold | revisions pending | Sep 2 | EU low-value threshold figure corrected. Waiting on the ops lead to confirm the number. |
| Home page | site | none | approved | Sep 8 | Rules pass clean. No figures on the page. |
| Why we do not charge per label | blog | none | complete | Sep 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.
| Piece | Surface | Stage | Due | Next |
|---|---|---|---|---|
| Returns portal landing page | site | brief | Sep 25 | Brief written from the campaign. Waiting on two screenshots from product. |
| Q4 launch announcement | email · blog | draft | Sep 18 | Draft 2. The headline still leads with a feature. Rewrite to the behavior. |
| Customer story: Marrow Ceramics | blog | review | Sep 15 | Quote approval sent to the customer Sep 10. |
| Help: international duties | help | draft | Sep 16 | One figure outstanding, see Upkeep. |
| LinkedIn series: what shipping costs | social | approved | Sep 22 | Six 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.
Eighteen more records live in upkeep/ as markdown files.
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.
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.
Write like the person who has printed ten thousand labels and is not impressed by any of them.
Preferred and banned. The rules pass checks every piece against this list.
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.
Primary actors: store owners in trial. Key communicator: the Shopify app reviewer they already read. Series live, checkpoint 2 of 3.
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.
Evaluation stage. Nine quotes in, three pending. Log of everything else that moved the number is in the brief.
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| Run | When | Tier | Last | What it does |
|---|---|---|---|---|
| Fact sweep | Mondays | Fast | Sep 8 | Every figure, name and date on every live piece, checked against the facts file. Trigger B flags. |
| Rules pass | 1st of month | Standard | Sep 1 | Words, claims and register on every live piece. Trigger A flags. |
| Pricing page check | on plan change | Fast | Sep 9 | Fires when pricing.md changes. Found the $49. |
| Competitor recheck | monthly | Standard | Sep 9 | Every comparison claim gets a fresh dated source or a flag. |
| Claims review | quarterly | Strongest | Jul 1 | Reads 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/.
How it works
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.
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.
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.
Who does the work
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.
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.
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.
| Job | Tier the desk recommends | Why |
|---|---|---|
| Fact sweep | Fast | Mechanical, many files, little judgment. |
| Rules pass | Standard | Pattern matching with some judgment. |
| Campaign brief | Strongest available | The whole method rests on the analysis. |
| Render the desk | Fast | It 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
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.