Features

Everything around the card.
In the same window.

How it works follows one card from a sentence to a shipped change. This page is the rest of the app: what you reach for while cards are in flight. Every scene shows the app’s own screens, in its own words.

Try it

See the change running before you ship it.

Once the Builder has made a change, the card has a Try it button. Plyloft starts your app in the card’s own copy and shows it on the card: Starting your app…, then Running on localhost, with the page itself under it.

A diff tells you what changed; clicking through your app tells you whether it is right. Try it gives you that before anything reaches your main branch, with no second checkout to set up by hand. No AI is used for it, and your own files stay as they are.

acme-web›Board›Needs you
Invoice totals in cents···
Ready to shipShip it puts it on GitHub as a pull request and merges it with main once GitHub’s checks pass.Check it firstShip it ▾
ReviewHideSee the changesNot right — tell the Builder what’s wrongShip it ▾
Try itRunning on localhost:41003ReloadOpen in browserShow the session
AcmeInvoicesCustomersSettings
Invoices New invoice
NumberCustomerLinesTotal
INV-1042Northwind Ltd3€1,284.30
INV-1041Globex GmbH7€642.15
INV-1040Initech SA2€89.99
This month €2,016.44
DetailsRan "npm run dev" in the card’s copy · port 41003
BuilderClaudeChecksPassedReviewerCodex · approvedBlocked byNothing AddChange…
The first time, Plyloft asks how your app starts and suggests what it found in package.json. Press Save and try.
It asks onceThe first time, How to start your app suggests the command it found, such as npm run dev from package.json. Save and try remembers it for the repository; a command that comes from the repository runs only after you allow it on this computer. A plain website opens its index.html in your browser instead.
Reload, Open in browser, Show the session, StopThe preview sits under the card’s Now box. Open it in your own browser, or show the session your app runs in.
When it can’t startThe card says Couldn’t start and shows the last lines your app printed under Details: tell the Builder what went wrong, or press Change how it starts.
After you ship, tooThe card’s What shipped offers Try it in followed by your project’s name: your app from the project’s own folder, in Code’s preview.
Terminals & sessions

Claude, Codex and your shells, side by side.

Terminals is where you talk to Claude or Codex directly, try a command or keep your dev server running, in your project’s folder. Lay the sessions out one, two, four or six at a time; your cards’ sessions are listed beside them in the sidebar.

Not everything needs a card. A quick question, a one-off script or a long conversation belongs in a session, and with several open you need to see at a glance which one is waiting for you and which one has ended.

acme-web›Terminals
Terminals···
$shell 1Running
sam@studio acme-web % npm run dev> acme-web@2.4.1 dev> vite  VITE v5.4.8 ready in 412 ms ➜ Local: http://localhost:5173/ ➜ press h + enter to show help
✦Fix the flaky login testClaude is waiting for you
⏺ The test waits a fixed 200 ms for the session cookie. I'll await the cookie instead, then run the test. Bash command
npx vitest run src/auth/login.test.ts
Do you want to proceed?
❯ 1. Yes
2. Yes, and don’t ask again for npx vitest
3. No, and tell Claude what to do differently
✦Add CSV export to invoicesEndedStart fresh
⏺ Added an Export CSV button to the invoices list. src/invoices/exportCsv.ts, 3 tests.✻ Baked for 2m 10s Resume this session with:claude --resume 7c1e…[process exited (code 0)]
$shell 2Ended · error code 1
sam@studio acme-web % npm testFAIL src/auth/login.test.ts > keeps you signed inTests 1 failed | 41 passed (42)sam@studio acme-web % exit [process exited (code 1)]
Terminals in Quad (2×2): your dev server in a shell, a Claude session named after its conversation and waiting for you (amber), one that ended, and a shell whose last command failed. Press Continue or Restart.
New opens any sessionA shell, Claude, Codex or Codex chat. Resume… picks up an earlier Claude or Codex conversation of the project, and Several sessions at once… opens a set of them together. The AI sessions run on your own plan.
Named after their conversationA session takes the first words you typed, then the AI’s own title. Rename it with the pencil and Plyloft renames the conversation too, so claude --resume shows the same name.
It says when it waits on youA session that asks for a decision, a permission or to trust a folder says so on its tile, in the sidebar and in the Inbox, with an amber dot and an amber border.
Pick up where you left offAn ended session says how it ended and offers Continue or Start fresh; a shell offers Restart. After Plyloft quits, Terminals offers to reopen the sessions that were open. Nothing reopens on its own.
Shortcuts
⌘TorCtrl+T
A new session: a shell, Claude or Codex, as Settings chooses
⌘⇧TorCtrl+Shift+T
A new Claude session
⌘⇧XorCtrl+Shift+X
A new Codex session
⌘⇧RorCtrl+Shift+R
Resume…
⌘⇧]orCtrl+Shift+] · ⌘⇧[orCtrl+Shift+[
The next or the previous session
⌘⇧EnterorCtrl+Shift+M
Expand the session you’re in, or show the grid again
⌘⇧WorCtrl+Shift+W
Close the session you’re in
Inbox & History

What needs you, and what already happened.

The Inbox gathers what waits on you in every project: a card ready to ship, a review that asks for changes, a session that finished its turn or asks you something, a check that failed. History keeps what ran, shipped and was checked in every workspace over the last 28 days.

With several cards and sessions going at once, you shouldn’t have to visit each project to find the one that needs you. And when you wonder whether something shipped, or which session that fix came from, History has the answer without digging through terminals.

All workspaces›Inbox
Inbox

5 things need you, 1 is working.

Needs you 5
acme-apiUpgrade the PDF libraryChecks failed · 1 of 123hSee what failed
acme-webClaude finished · see what it didIn “Fix the flaky login test”nowOpen session
acme-webRetry failed invoice uploadsPR #34 · aliceopened 2h agoHave it reviewedOpen on GitHubCopy link
acme-webInvoice totals in centsReady to ship · checks passed12mShip it
acme-apiRate-limit the login endpoint1 serious issue · changes requested1hSee the review
Working 1
acme-webDark mode for the invoice PDFBuildingnow
The Inbox, for every workspace: what needs you first, with a failure at the top, then what is working. Each row names its project and has one button, named for what it does. Press ⋯ or “3 shipped this week · History”.
One row, one buttonEach row names its project and says what happened, with one button for the next step: Ship it, See the review, See what failed, Open the Builder. A row stays, and counts, until what it asks is done; news, such as a merged pull request, goes with Clear the news.
Pull requests to reviewOn the Team plan, with a Board on GitHub Issues, a pull request a teammate asks you to review shows up too, with Have it reviewed, Open on GitHub and Copy link.
History in tabsRuns (with the Builder’s rounds), Ships, Checks, Sessions and Discussions, with a workspace and a text filter. The numbers count what is listed. No cost is shown: your Claude or ChatGPT plan pays for the work.
Find it againSearch History looks through the text of cards, planning conversations and brainstorms, and finds Terminals sessions by their title; it opens what you pick. Sessions offers Resume. The Inbox’s ⋯ › Recent messages keeps the last ten messages.
Shortcuts
⌘⌥1orCtrl+Alt+1
Open the Inbox
⌘⌥5orCtrl+Alt+5
Open History
⌘⇧HorCtrl+Shift+H
Search History
Review a pull request

Point the Reviewer at any open pull request.

Review a pull request…, in the Board’s ⋯ or in Search, lists the repository’s open pull requests: yours, a colleague’s, even one from a fork. Plyloft makes a card for it, and the Reviewer reviews it read-only, in a copy of its own, with the same findings and rounds as any card.

A second opinion is worth having on every change, not only on the ones Plyloft built. The findings stay in Plyloft, so you decide what to tell your colleague. On your own pull request, the Builder can fix what was found and send the fix to it.

acme-web›Board
Board BoardList Find a card New card ···
Needs you1
Invoice totals in centsReady to ship
Not started1
Paginate the invoice listReady to start · #27
Working1
Dark mode for the invoice PDFWorking · 3m
On hold1
Empty state for LibraryClaimed by alice · #14
Done1
Session cookie expiryShipped · on GitHub
Review a pull requestThe Reviewer reviews an open pull request of this repository, read-only, on a card of its own. Its findings stay here in Plyloft: nothing is posted to GitHub.Pull request
Or paste its linkA pull request of this repository, like https://github.com/owner/name/pull/12.https://github.com/…/pull/…ReviewerReviewed byThe Reviewer reads the pull request in a pinned, read-only copy.ClaudeCodexCancel
Board ⋯ › Review a pull request… lists the repository’s open pull requests. Pick one, choose Claude or Codex as the Reviewer and press Review.
Findings stay with youThe Reviewer’s findings land on the card and under the lines they name. No comment, no review and no edit is posted to GitHub. Copy findings puts them on the clipboard as Markdown, to paste where your team talks.
Review only, unless it’s yoursA colleague’s pull request, or one from a fork, is only reviewed: no Builder, no push. On your own pull request in the same repository, Fix with the Builder fixes what was found in the card’s copy, and the fix is checked and reviewed like any build.
One push, never forcedSend the fixes to GitHub sends the checked, reviewed fix to your pull request’s own branch, only while nobody has pushed to it since the fix started. Never forced, and never to the default branch, the branch Plyloft builds from or the pull request’s base.
It follows the pull requestNew commits make the card say New commits to review, and Review again reads them. If someone pushed on top of the head your fix is built on, Bring in the new commits merges them under your fix first. Merged or closed, the card says so.
Shortcuts
⌘KorCtrl+K
Search, where Review a pull request… is one of the commands
Ask about this card

Talk a card over before anything is built.

Every card has Ask about this card: ask its Builder, Claude or Codex, what the card means, which files it would touch or how to approach it, and give it a screenshot, a PDF, a Word or a text file. On a card that isn’t built yet, Plan with two AIs has one AI write the plan while the other critiques it.

A sentence on a card can hide a decision nobody made. Asking first costs less than a build that went the wrong way, and a plan two vendors have argued over gives the Builder fewer blind spots. Both are discussion only: nothing in your project changes.

acme-web›Board›Not started
Paginate the invoice listAsk about this card···
Ready to startThe brief is written and nothing has started.Plan it first ▾Start build ▾
BuilderClaude (not started)PermissionsAsks before every changeBlocked byNothingAddChange…
Ask about this cardHide

Discussion only. The chat can read this card's title and notes, the files you add here, and the project, but it can't change anything. Code changes stay with the card's Builder.

ClaudeCodexClaude is ready.Show terminal
  1. YouWhich files would this touch? The mock of the list is attached.invoice-list-mock.pngImage · 182 KB
  2. Claude used Read: src/invoices/InvoiceList.tsx
  3. ClaudeTwo files, going by the mock:
    • src/invoices/InvoiceList.tsx: the Previous and Next row under the table, and the page in the URL
    • src/api/invoices.ts: pass limit and the cursor the API already returns
    Nothing else changes; the filter keeps working as it does now.

Tokens in this conversation: 6 in · 412 out · 18,204 read from the cache · 9,840 written to the cache.

Ask Claude about this card. Drop or paste files here.Files you add stay on this computer and are deleted with the card.Add files…Send
Ask about this card: ask Claude or Codex about the card and attach a screenshot, a PDF, a Word or a text file. It reads the card and the project and changes nothing. Press Plan with two AIs.
Discussion onlyAsk about this card reads the card’s title and notes, the files you add and the project, and can’t change anything; code changes stay with the card’s Builder. Claude and Codex each keep their own conversation, on your own plan.
Files you addDrop, paste or Add files…: images up to 5 MB, PDFs up to 32 MB, Word files up to 20 MB, text files up to 2 MB. They stay on this computer and are deleted with the card.
Two rounds, three at mostThe card’s Builder proposes, the other vendor critiques, the first revises, and it stops early once the critic says the plan is ready. With only one AI signed in, two separate sessions of it take the two roles.
You decide at the endUse this plan makes it the card’s plan for Start build; Another round… runs one more; Edit… lets you change it first; Discard keeps it under Earlier plans. For a question about the whole project, the Board’s ⋯ › Discuss… asks both, and History keeps it under Discussions.
Code

Your project’s files, one keystroke away.

Code is your project’s own folder in an editor: the file tree on the left, your files in tabs on the right. Go to file opens any file by part of its name, In files searches the text of all of them, and the tree’s right-click menu does the rest.

The Builder writes most of the code, but you still want to read a file, fix a typo yourself or look at what a card is about to change, without opening another editor. Code works on your project itself; a card’s work stays in its own copy until you ship it.

acme-web›Code›src›invoices
totals.ts···
src
api
invoices
exportCsv.ts
InvoiceList.tsx
totals.test.ts
totals.ts
package.json
README.md
New fileNew folder
Rename F2Move to TrashMove to the Recycle Bin⌘⌫orDelete
Copy pathCopy relative path
Reveal in FinderShow in File Explorer
totals.ts ×
1export function formatCents(cents: number): string {
2 const euros = cents / 100;
3 return euros.toLocaleString('en-IE', { style: 'currency', currency: 'EUR' });
4}
5
6export function invoiceTotal(lines: Line[]): number {
7 return lines.reduce((sum, l) => sum + l.qty * l.unitCents, 0);
8}
Wrap
Code is your project’s own folder. Right-click a file or a folder for New file, New folder, Rename, Move to Trash, Copy path and Reveal in Finder (Move to the Recycle Bin and Show in File Explorer on Windows).
Right-click a fileNew file, New folder, Rename, Move to Trash with Undo (the Recycle Bin on Windows), Copy path, Copy relative path and Reveal in Finder (Show in File Explorer on Windows). Files that start with a dot show with More for Code › Show hidden files.
Go to file and In filesSearch has a Files scope for names and an In files scope for text, with Match case, Whole word, Regular expression, Hidden files and Only in files matching. Each match names its line and opens there.
Files you dropA file from your project opens as itself. One from anywhere else opens read-only, as a copy, so a change can’t get lost: Copy into the project puts it in your project, where you can edit it.
Your app beside the codeMore for Code › Show localhost preview shows your running app next to the editor; a running Try it is listed first. After a ship, Try it in your project starts it from the project’s own folder.
Shortcuts
⌘PorCtrl+P
Go to a file
⌘⇧ForCtrl+Shift+F
Search the text in your files
⌘SorCtrl+S
Save the file
⌘⌥SorCtrl+Alt+S
Save all files
⌘⌫orDelete
Move the file picked in the tree to the Trash (the Recycle Bin on Windows)
⌘=orCtrl+= · ⌘−orCtrl+−
Larger or smaller text in the editor
Getting started, Tips and Help

Learn it on your own project.

Getting started takes you through your first card in your own project. It points at the real buttons and waits for you; it never presses anything for you. Help, the row above Settings in the sidebar, holds the tour, Tips, what’s new in your version, the user guide and Get help.

A tour of a sample project teaches you the sample. Doing your first card for real, with a pointer at each step, leaves you with a shipped change and knowing where everything is. Later, New in this version tells you what changed without reading a changelog.

acme-web›Board›Not started
Search invoices by customer···
Ready to startThe brief is written and nothing has started.Plan it first ▾Start build ▾
What you wantAdd files
A search box above the invoice list that filters by customer name as you type. Keep the current filter by status working with it.
Claude builds it in a copy of your project, asking you before every change; Codex reviews it.Change…
BuilderClaude (not started)PermissionsAsks before every changeBlocked byNothingChange…
Activity
You described the card10:42
Step 5 of 10 · The Start build buttonStart the buildThis starts Claude with your own subscription, in its own copy of your project. Nothing changes in your files on this Macthis PC until you ship it.Skip this step
Getting started, on your own project: each step points at the real button and waits for you to press it. Plyloft never presses it for you.
Ten steps, at your paceFrom How Plyloft works to Ship it. Pause folds it into Getting started · 4 of 10 · Resume; Skip this step moves on, and a skipped step keeps Do it now. Short chapters follow when you want more, such as Talk before you build or Code and the preview.
The 1-minute tour, and TipsTake a 1-minute tour points at each part of the app once, with Next. Tips when I open a section shows one tip the first time you open Terminals, Code, the Library, the Inbox, History or All skills; Got it puts it away for good.
New in this versionA few points on what your version brings, each with a button to the place it is about, and Full changelog. After an update, a dot on Help says something is new; versions you skipped are listed below.
Updates and helpCheck for updates… is in Help, in the Plyloft menu on a Mac and in the notification area on Windows. Get help shows the short report it adds, with no project names, code or text, and opens an email for you to send: Plyloft sends nothing by itself.
Shortcuts
⌘/orCtrl+/
Keyboard shortcuts (outside the editor; on a non-US keyboard, ⌘ with the key that types /)
⌘KorCtrl+K
Search and commands
Library, All skills and My library

Every skill, and where it lives.

Library › Skills shows what the agents know in a project: skills in the repository, in the team library, on this computer and the four that come with Plyloft. All skills, in the sidebar, lists every skill on this computer and where each copy is used. My library keeps your own skills in a private repository on your GitHub account.

Skills pile up in folders nobody opens and get copied by hand between projects, until nobody knows which copy is current. Here each one says where it lives and whether it is up to date, and a copy into a project always goes through a card you see before it ships.

acme-web›Library
Library
SkillsWhat the agents know how to do. Each one lives somewhere — in this repository, in the team library, on this Macthis PC, or in Plyloft itself.Filter 11 skills by name or descriptionNew skill…
In this repository3 skills · everyone who opens this repository
review-rulesClaudeCodexHow we review a change in acme-web: money in cents, never a float.···
api-errorsClaudeCodexHow the API reports an error, and how the app shows it.···
release-checklistClaudeWhat to check before a release of acme-web.···
In the team library3 skills · every team workspace
Updated 3 minutes ago
card-briefClaudeCodexAlso in PlyloftTurns a rough idea into a brief an agent can work from.Compare
db-migrationsClaudeCodexHow the team writes and reverts a migration.Needs your OK · a script changed. New sessions keep the version you approved on 17 Oct.Review···
pr-etiquetteClaudeCodexWhat a pull request description says, and who to ask.Install···
Comes with Plyloft4 skills · in sessions Plyloft starts
Answer the ReviewerClaudeCodexv1.152.0 · How the Builder replies when the Reviewer pushes back.
Write a good card briefClaudeCodexv1.155.0 · Changed in 1.155.0: names the project's own heading for manual checks, or Manual checks
Release and status notesClaudeCodexv1.167.0 · Changed in 1.167.0: lists an in-app tour's steps new in this release, under New in this version
Verify before saying doneClaudeCodexv1.152.0 · Makes an agent check its own work before it reports back.
On this Macthis PC1 skill · only here
Yours alone. Plyloft reads them but does not change them — share one with your team from its row.
commit-styleClaudeHow I like commit messages written.···
Library › Skills: what the agents know in this project, section by section, with the CLIs each skill reaches. The team library says when it last updated itself. Press a skill’s ⋯.
Sections and scopesIn this repository, In the team library, Comes with Plyloft and On this Mac, filtered by All, Repository, Team, This Mac or Plyloft. Each row names the CLIs it reaches; its ⋯ holds only what applies, such as Open in Code, Install, Copy to… or Promote to Team.
All skills and Copy to…Every skill this computer can see, filtered by place, state, workspace and CLI, with Used in for each one. Copy to… gives each project you pick a card that adds the skill, and the copy remembers where it came from, so it can say Update available.
My library, on ProCreate My library makes a private repository on your own GitHub account, and Use it on this Mac brings it to another computer. Your sessions get its skills as mine:<name> on every computer you choose; Add to My library, on a skill’s page, puts one in.
The team library, on TeamYour team’s skills reach every Claude and Codex session Plyloft starts, and the library keeps itself current in the background. A team skill whose script changed waits for your OK before new sessions use it.
Shortcuts
⌘⌥6orCtrl+Alt+6
Open the Library
Plyloft on Windows

The same app on Windows 11.

Plyloft runs on Windows 11, 64-bit (x64), with the same features as on a Mac in every release. Tiles run PowerShell, Claude and Codex; shortcuts use Ctrl; closing the window can keep Plyloft running in the notification area.

A team rarely works on one kind of computer. With the same app on both, a card, a review and a skill look and work the same for everyone, and nobody waits for a Windows version that comes later.

Plyloft
acme-web›Terminals
Terminals+ New ⌄···
$shell 1Ready
PS C:\Users\sam\Projects\acme-web> git statusOn branch mainChanges not staged for commit: modified: src/invoices/totals.tsPS C:\Users\sam\Projects\acme-web> npm test Tests 14 passed (14)PS C:\Users\sam\Projects\acme-web>
✦Explain the invoice totalsReady
❯ why does the total round per line?● invoiceTotal adds qty × unitCents for each line in whole cents, so each line is exact and the sum never drifts. Rounding happens once, in formatCents, for display.❯
^13:4222/10/2026
Plyloft on Windows 11: the same window, with Windows’ own title bar. A PowerShell tile beside a Claude tile, both in your project’s folder. Press × to close the window.
Installs for your userNo administrator needed, and updates download on their own. The installer isn’t signed with a Microsoft certificate yet, so Windows may say “Windows protected your PC”: choose More info, then Run anyway.
PowerShell in every tileA shell tile runs your login shell, Windows PowerShell unless Settings › Look and feel › Editor and terminals › Tile shell names another, such as PowerShell 7 (pwsh). Claude and Codex run in tiles of their own, on your own plan.
Closing isn’t quittingClose Plyloft? asks first: Quit Plyloft, Cancel, or Keep running in the notification area. Right-click its icon there for Show Plyloft, Check for Updates… and Quit Plyloft. When I close the window, in Settings › Look and feel › Appearance, decides for good.
Ctrl, and a screen readerEvery shortcut uses Ctrl, and Ctrl+/ lists them (on a non-US keyboard, Ctrl with the key that types /); in a terminal, plain Ctrl letters go to the shell. Screen reader support makes the terminal you type in tell Narrator or NVDA what it prints, line by line.
Shortcuts
Ctrl+/
Keyboard shortcuts
Ctrl+K
Search and commands
Ctrl+Shift+M
Expand the tile you’re in, or show the grid again
Ctrl+Shift+Q
Quit Plyloft

See it on your own project.

Try it, Terminals, the Inbox, History and pull request reviews are in every plan, Free included; on Free a pull request card takes your one card slot only while it is reviewed, fixed or holds a fix not pushed yet. The review-requested Inbox row comes with Team.

Get Pro

Seats, you included (2–50)
3
VAT included. Businesses in the EU can add a VAT number on the payment page.Founding price, kept for as long as your subscription runs.

Checking your sign-in…