Asterplant

The IDE designed for modern digital work

Keep track of everything your agents make.

Asterplant helps you manage your agents’ work better. It is a VS Code fork that lets you focus on the design, planning and review of your projects. It learns the corrections you keep repeating and turns them into rules your agents follow.

invoice-matchorbit-api
Artifacts
Project files42 d ago
Specs21 d ago
Reports34 h ago
Scripts22 h ago
ledger.ts
1export function settle(rows) {
2 return rows.filter(r => r.matched);
3}
asterplant.md
~.clauderulesasterplant.md
24## Learned from your corrections
25
26- Keep scratch files out of the root.
27- Never commit without asking me first.
Claude Code · invoice-match
● Tests: 88 of 88 passing
● Committed 3 files
> never commit without asking me
Codex · orbit-api
• Updated routes.ts
• git commit -m "routes"
> never commit without asking me first
0 0UTF-8LFMarkdown
You corrected this 3 times.
Today, 12:10 PM, in orbit-api: “never commit without asking me first”
Today, 12:08 PM, in invoice-match: “never commit without asking me”
Yesterday, 4:41 PM, in invoice-match: “ask me before any commit”
The rule, which you can edit here
never commit without asking me first
Save to Asterplant Both agents read it. It gets a switch in settings.
Add for this projectAdd for every projectNot a rule
  1. Correct an agent
  2. Repeat correction elsewhere
  3. Repeated correction found
  4. Rule suggested
  5. Both agents read it

Agent Usage

See where your agents’ work went

Charts show the cost per day, who made the calls and what each request asked for. Click a bar to filter the rest, or pick another project.

invoice-matchorbit-api
Artifacts
Reports21 h ago
REPORT-invoice-match-20260918.htmldocs1 h ago
REPORT-ledger-split-20260917.htmldocs1 d ago
Specs13 h ago
SPEC-payment-retries.mddocs3 h ago
invoiceMatcher.ts
1export function match(inv, pay) {
2 return rules.find(inv, pay);
3}
0 0UTF-8LFTypeScript
Agent Usage
Scopeinvoice-matchAll projects Range7 days30 days90 daysAll MeasureEstimated costTokens Filtered by Fix a bug or defect
$43.76
Estimated cost at API list prices
212
Messages you typed
14.2%
Messages that corrected earlier work (30)
18.2%
Share spent by subagents and workflow agents
Estimated cost per day
Stacked by who made the calls. Click a day to filter.
US dollars
$0$1$2$3$4
Aug 31Sep 5Sep 10Sep 15Sep 20Sep 25
Who made the calls (click to hide)Main sessionSubagentsWorkflow agents
Who made the calls
Three parts of the measure
$43.76in all
Each kind of request
Click a bar to filter the other charts
Fix a bug or defect$13.57
Build or change a feature$10.50
Write or revise a document$7.00
Research or investigate$5.25
Work through review comments$3.94
No typed message$3.50
$0$5$10$15
Inside a kindInside “Fix a bug or defect”
Click a kind to see the kinds inside it
Does not work$7.05
Wrong result or not what was meant$4.48
Looks wrong or poor$2.03
$0$4$8
invoice-match
orbit-api
harbor-web
Agent working folders
  1. Open Agent Usage
  2. Cost by day
  3. Kinds of request
  4. Inside one kind
  5. Other projects

Artifacts

Your artifacts, out of the Explorer clutter

Asterplant separates artifacts from code, so you can focus on review and leave the code to your agents.

invoice-matchorbit-api
1 needs review
1
Explorer
Artifacts
invoice-match
.github
config
docs
glossary.md
onboarding.md
scripts
backfill.py
reconcile.py
src
DESIGN-ledger-split.md
DESIGN-ledger-split.mddocs/1 min ago
DESIGN-orbit-api-auth.md
DESIGN-orbit-api-auth.mddocs/40 d ago
DESIGN-rate-limits.md
DESIGN-rate-limits.mddocs/6 h ago
DESIGN-refund-flow.md
DESIGN-refund-flow.mddocs/40 min ago
DESIGN-retry-backoff.md
DESIGN-retry-backoff.mddocs/21 d ago
DESIGN-webhook-queue.md
DESIGN-webhook-queue.mddocs/12 d ago
REPORT-invoice-match-20260918.html
REPORT-invoice-match-20260918.htmldocs/1 min ago
REPORT-latency-20260819.html
REPORT-latency-20260819.htmldocs/30 d ago
REPORT-ledger-split-20260917.html
REPORT-ledger-split-20260917.htmldocs/1 d ago
REPORT-match-rate-20260909.html
REPORT-match-rate-20260909.htmldocs/9 d ago
REPORT-merchant-gaps-20260902.html
REPORT-merchant-gaps-20260902.htmldocs/16 d ago
REPORT-refund-rate-20260916.html
REPORT-refund-rate-20260916.htmldocs/2 d ago
REPORT-retry-audit-20260826.html
REPORT-retry-audit-20260826.htmldocs/23 d ago
SPEC-ledger-export.md
SPEC-ledger-export.mddocs/3 h ago
SPEC-merchant-api.md
SPEC-merchant-api.mddocs/18 d ago
SPEC-payment-retries.md
SPEC-payment-retries.mddocs/12 min ago
Specs312 min ago
Designs61 min ago
Reports71 min ago
… 1 older file18 d ago
… 3 older files12 d ago
… 4 older files9 d ago
Reports1Code1
REPORT-invoice-match-20260918.htmlinvoiceMatcher.ts
Invoice matchFindingMethodUnmatchedTheme
Week 38 · 18 September 2026
Larger invoices take longer to match

Each extra $10k adds about 1.8 days before the matcher settles an invoice. The 8 invoices above the band wait for a person.

72 invoices · 64 matched by rule · 8 for a person · amount against days to match
0 0UTF-8LFHTML
  1. Crowded file tree
  2. Agent files found
  3. Moved to Artifacts
  4. Sorted by type
  5. Old files dimmed
  6. Older files folded

Tab groups

Group tabs by file type

The built-in agent reads every open tab and groups tabs by file type. Tabs are useful again even with long file names.

invoice-matchorbit-api
1 needs review
1
Artifacts
Specs212 min ago
Designs21 min ago
Plans12 h ago
Reports31 min ago
REPORT-invoice-match-20260918.html1 min ago
Notes15 h ago
Scripts110 min ago
REPORT-invoice-match-20260918.html
SPEC-payment-retries.md
invoiceMatcher.ts
DESIGN-ledger-split.md
REPORT-ledger-split-20260917.html
NOTES-week-38.md
retryQueue.ts
PLAN-merchant-reconciliation.md
REPORT-match-rate-20260909.html
DESIGN-retry-backoff.md
reconcile.py
SPEC-orbit-api-v2.md
REPORT-invoice-match-20260918.html
DESIGN-retry-backoff.md
Specs2Designs2DESIGN-ledger-split.mdDESIGN-retry-backoff.mdPlans1Reports3Notes1Scripts1Code2
Specs2Designs2DESIGN-ledger-split.mdDESIGN-retry-backoff.mdPlans1Reports3Notes1Scripts1Code2
Invoice matchFindingMethodUnmatchedTheme
Week 38 · 18 September 2026
Larger invoices take longer to match

Each extra $10k adds about 1.8 days before the matcher settles an invoice. The 8 invoices above the band wait for a person.

72 invoices · 64 matched by rule · 8 for a person · amount against days to match
Retry backoff

A failed payment call is retried with a growing wait, and it stops after five tries.

The rule
  • Wait one second, then double the wait each time.
  • Never wait longer than 30 seconds.
  • Send the fifth failure to a person.
delay = min(base * 2 ** attempt, 30)

See retryQueue.ts for the code.

0 0UTF-8LFHTMLMarkdown
  1. Twelve tabs open
  2. Hard to find a tab
  3. Agent reads each tab
  4. Grouped by type
  5. Hover a group
  6. Open the file

Review comments

Comment on what your agents wrote

A new report waits in Artifacts until you open it. Comment on a passage and send it to the agent in one paste. When the agent rewrites the passage, the page updates and the comment is marked Changed.

invoice-matchorbit-api
1 session live1 needs review
1
Artifacts
Specs112 min ago
SPEC-payment-retries.mddocs12 min ago
Designs11 h ago
DESIGN-ledger-split.mddocs1 h ago
Reports23just now
REPORT-invoice-match-20260918.htmldocsjust now
REPORT-ledger-split-20260917.htmldocs1 d ago
… 1 older file9 d ago
Scripts110 min ago
Code1
invoiceMatcher.ts
1export function match(inv, pay) {
2 return rules.find(inv, pay);
3}
Reports1Code1
Invoice match
file:///C:/work/invoice-match/docs/REPORT-invoice-match-20260918.html
On: Larger invoices take longer to match
What are these? [Image #1] Label them in the chart and title.
Enter adds the comment. Ctrl+Enter starts a new line. Paste a picture to add it. Escape cancels.Add CommentCancel
Review comments1 openSend Comments Alt+EnterClear Comments
1What are these? [Image #1] Label them in the chart and title.Changed1 pictureSentLarger invoices take longer to match
Invoice matchFindingMethodUnmatchedTheme
Week 38 · 18 September 2026
1Larger invoices take longer to match1Larger invoices take longer, and 8 wait for a person

Each extra $10k adds about 1.8 days before the matcher settles an invoice. The 8 invoices above the band wait for a person. Six come from Harbor Foods.

72 invoices · 64 matched by rule · 8 for a person · amount against days to match
Claude Code · invoice-match
> write this week's match report
● Read 3 files
● Ran the matcher on week 38
● Wrote docs/REPORT-invoice-match-20260918.html
Review comments on docs\REPORT-invoice-match-20260918.html (1 open).
Work through each comment below. End your reply with one line per comment, such as "C1: what you changed".
A marker such as "[Image #1]" stands where the person pasted a picture into the comment. The "Image #1:" line after the comment gives its file, often with the part they mean marked. Open the file to see it.

[C1] Source: docs\REPORT-invoice-match-20260918.html › Larger invoices take longer to match
> Larger invoices take longer to match
Comment: What are these? [Image #1] Label them in the chart and title.
Image #1: C:\Users\dana\AppData\Roaming\Asterplant\asterplant\comments\images\5c1e0b7a.png
● Updated docs/REPORT-invoice-match-20260918.html
● C1: labelled the 8 points in the chart and the title
>
0 0UTF-8LFHTML
  1. Report written
  2. Needs review
  3. Report opened
  4. Comment on text
  5. Send to agent
  6. Page updates
  7. Marked changed

Session daemon

Agent sessions run with the window closed

Terminals run separately from the window. Agents keep working when you close the window.

Stock VS Code
Window closedThe terminals ended with the window
FileEditSelectionViewGoRun… invoice-match
Terminal
Claude Code
> refactor the retry queue
● Read src/match/invoiceMatcher.ts
● Edited src/match/retryQueue.ts (+38 −12)
● Tests: 61 of 88 passing
PS C:\invoice-match>
Codex
> reconcile the merchant rows
• Scanned scripts/reconcile.py
• Matched 1,204 of 3,880 rows
• matching the rest…
PS C:\invoice-match>
0 0UTF-8LF
Asterplant
Window closedSession daemon 2 sessions running
invoice-match
2 sessions live
Terminal
Claude Code
> refactor the retry queue
● Read src/match/invoiceMatcher.ts
● Edited src/match/retryQueue.ts (+38 −12)
● Tests: 61 of 88 passing
● Tests: 88 of 88 passing
● Wrote docs/DESIGN-ledger-split.md
Codex
> reconcile the merchant rows
• Scanned scripts/reconcile.py
• Matched 1,204 of 3,880 rows
• matching the rest…
• Matched 3,880 of 3,880 rows
• Done. 2 files written.
0 0UTF-8LF
  1. Agents running
  2. Window closed
  3. Window reopened
  4. Agents kept working

Session recovery

Resume sessions after a power loss

Asterplant records every agent session as it runs. Click once to type the command that resumes the session.

invoice-match
2 sessions live2 sessions to recover1 session to recover
1
Interrupted Sessions
Fix the retry queue, then write the report
claudeC:\work\invoice-match14 min ago
The last turn did not finish
Recover
Reconcile the merchant rows
codexC:\work\invoice-match\scripts9 min ago
The last turn did not finish
Recover
Artifacts
Specs120 min ago
Reports215 min ago
REPORT-invoice-match-20260918.html15 min ago
Scripts112 min ago
retryQueue.ts
1export const queue = [];
2
3export function retry(row) {
4 queue.push(row);
5}
Claude Code
> fix the retry queue, then write the report
● Edited src/match/retryQueue.ts (+38 −12)
● Tests: 61 of 88 passing
● Writing docs/REPORT-invoice-match…
powershell
PS C:\work\invoice-match>
Claude Code
PS C:\work\invoice-match> claude --resume 7f3c2a91
Typed, not sent. Press Enter to resume.
0 0UTF-8LF{ } TypeScript
Power lost
  1. Agents working
  2. Power lost
  3. Saved sessions listed
  4. Click to resume
  5. Resume command typed

Everyday tools

More tools for keeping track of agent work

Built-in agent rules

Twenty-three rules for Claude Code and Codex apply to future work. Each rule has its own switch.

invoice-match
Agent rules
Search the rules 4.3 KB4.6 KB4.4 KB
Honesty
Check the output before calling it doneRun it or render it first. Measured
Report the attempts that failedWith the exact error text. Measured
Writing
Answer at the size of the questionA yes or no gets a yes or no. Measured
Keep one name for each ideaNever swap in a synonym. Built in
0 0UTF-8
  1. All rules listed
  2. Enable a rule
  3. Disable a rule

Drag real files out

Drag a file row out of the window to transfer the actual file to another app.

invoice-match
Artifacts
Reports21 min ago
REPORT-invoice-match-20260918.htmldocs/1 min ago
REPORT-ledger-split-20260917.htmldocs/1 d ago
Specs112 min ago
SPEC-payment-retries.mddocs/12 min ago
0 0UTF-8
upload.example.com
External file upload
Add attachments
Drop files here REPORT-invoice-match-20260918.html14 KB
REPORT-invoice-match-20260918.html
  1. Pick a file
  2. Drag the file
  3. File attached elsewhere

Layout that adjusts itself

Resize the window and the terminal moves on its own: beside the editor when wide, below it when tall.

invoice-match
Reports2
Specs1
Claude Code
> write the report
● Wrote REPORT…
Adjusted automatically
  1. A wide window
  2. Window gets narrower
  3. Terminal moves itself

Reports update automatically

The open report updates when an agent rewrites the report. No reload is needed.

invoice-match
REPORT-match-rate.html
Match rate by week, percent
41475258384947605571
Claude Code
> add the new match rules and rerun
● Wrote docs/REPORT-match-rate.html
0 0UTF-8
  1. Report open
  2. Agent rewrites report
  3. Report updates automatically

Projects that need you

A dot marks the project whose agent needs you: green when done, yellow for a question, red for an error. Ctrl+Alt+Right goes there.

invoice-matchorbit-apiharbor-web
invoice-matchorbit-apiharbor-web
invoiceMatcher.ts
1export function match(inv, pay) {
2 return rules.find(inv, pay);
3}
routes.ts
1export const routes = [
2 '/orbits', '/passes',
3];
Claude Code · orbit-api
● Moved the pass routes and ran the tests
● 42 of 42 tests pass
>
0 0UTF-8
Ctrl+Alt+→
Quit, then start again
  1. Three projects
  2. Agent waits
  3. Switch by keyboard
  4. Quit and reopen

Web pages in their own groups

Pages from your local servers and from websites each get a tab group, and stay out of Artifacts.

invoice-match
Reports1Local servers1Websites1Code1
invoiceMatcher.ts
1export function match(inv, pay) {
2 return rules.find(inv, pay);
3}
Invoices dev
http://localhost:5173/invoices
InvoicesUnmatchedMerchants
3,412 this week
INV-20931Harbor Foods$1,240.00
INV-20932Lumen Print$86.50
INV-20937Harbor Foods$4,410.00
Example Domain
example.com
Example DomainThis domain is for use in documentation examples.
0 0UTF-8
  1. Report and code open
  2. Open a local server
  3. Open a website

Papers and office files

A TeX paper builds its PDF on open, and Overleaf edits come in. Word, Excel and PowerPoint files open as tabs and redraw when an agent edits them.

orchard-notes
main.tex
1\documentclass{article}
2\title{Orchard notes}
3
4\begin{document}
5\maketitle
6\section{Results}
7Yield rose in the second season.
8\end{document}
main.pdf
Orchard notes
September 27, 2026
1   Results
Yield rose in the second season.
main.texmemo.docx
memo.docxOffice Document
main.texmemo.docxcosts.xlsx
costs.xlsxOffice Document
main.texmemo.docxcosts.xlsxpilot.pptx
pilot.pptxOffice Document
main.texmemo.docxcosts.xlsxpilot.pptx
memo.docxOffice Document
Lantern pricing memo
Lantern packs short requests into shared batches. This memo sums up the pilot.
PlanAccountsChurn
Pro1,2404.1%
Team3101.8%
Enterprise420.9%
ABCDEFG1ScheduleCost per 1kLatency2Fixed batch4.23103Lantern2.93354Lantern, tuned2.633056789
Cost per 1k requests
CostsNotes100%
Lantern pilot
Cheaper batch inference, a synthetic deck
Claude Code
● Added the Enterprise row to memo.docx
0 0BuildingUTF-8
  1. TeX paper
  2. Word memo
  3. Excel sheet
  4. PowerPoint deck
  5. Memo rewritten

Guided setup

A checklist finds Claude Code and Codex, installs what is missing, and opens both when you are ready.

invoice-match
Artifacts
Set up your agentsRecheckHide
AccountSign in to run the built-in agent on a free monthly quota. Without it, files are sorted by name alone and rule mining finds no corrections.Sign InSkip
Session recoveryOff. With it on, terminals keep running after Asterplant closes, and a session cut off by a crash can be resumed.On. Terminals keep running after you close Asterplant.Turn On
Claude CodeClaude Code 2.1.4Not installed. Claude Code needs a paid Claude plan.It asks you to sign in when it first starts.Install
Codex 0.61.0It asks you to sign in when it first starts.
Start workingOpens Claude Code, then Codex, each in its own terminal.Claude Code and Codex are running.Start
Claude CodeCodex
>
0 0UTF-8
Install Claude Code?Claude Code needs a paid Claude plan. A PowerShell terminal opens with the install line typed in. Read it, then press Enter to run it.InstallCancel
  1. Checklist on first start
  2. Install asks first
  3. Every row checked
  4. Start working

More features

Other additions to your IDE

Quote from the terminalPoint an agent at the exact line of its own output you mean, in one step.
Running session countSee at a glance how many agents are still working.
One menuEvery menu command sits behind the logo, which leaves more room for your work.
A simpler title barThe title bar shows your project and what waits for your review, and nothing else.
Files sorted by kindEvery file an agent writes lands in the right group, even when its name gives no hint.
Slide decks in their own groupPowerPoint files and decks an agent writes in HTML, Markdown or PDF gather under Slides.
File authorshipKnow which agent session wrote each file, and when.
Automatic light and dark themesLight by day and dark by night, with nothing to switch.
Independent zoom for reportsEnlarge a report to read it while the rest of the IDE stays the size you like.
Video in reportsWhen an agent puts a video in a report, you watch and scrub it right there.
Pick a file’s type yourselfWhen a file lands in the wrong group, set its type from the tab’s menu.
Clear the recovery listClose a row once, and it stays closed.

Pricing

Every feature, on every plan

The plans differ only in how much work the built-in agent does for you each month. That work is sorting files, grouping tabs and spotting repeated corrections.

Free

$0

For everyday use.

  • Every feature
  • A monthly quota for the built-in agent

Plus

$8/month

For heavier daily use.

  • Every feature
  • Five times the built-in agent quota of Free

Pro

$20/month

For running many agents at once.

  • Every feature
  • Fifteen times the built-in agent quota of Free

Keep track of what your agents make.

invoice-matchorbit-api
1 session live1 needs review
1
Artifacts
Specs112 min ago
SPEC-payment-retries.mddocs/12 min ago
Designs21 min ago
DESIGN-ledger-split.mddocs/1 min ago
… 1 older file21 d ago
Plans12 h ago
PLAN-merchant-reconciliation.mddocs/2 h ago
Reports31 min ago
REPORT-invoice-match-20260918.htmldocs/1 min ago
REPORT-ledger-split-20260917.htmldocs/1 d ago
… 1 older file9 d ago
Notes15 h ago
NOTES-week-38.mddocs/5 h ago
Scripts110 min ago
Specs1Designs1Reports2Code2
REPORT-invoice-match-20260918.htmlREPORT-ledger-split-20260917.html
Invoice matchFindingMethodUnmatchedTheme
Week 38 · 18 September 2026
Larger invoices take longer to match

Each extra $10k adds about 1.8 days before the matcher settles an invoice. The 8 invoices above the band wait for a person.

72 invoices · 64 matched by rule · 8 for a person · amount against days to match
Claude Code · invoice-match
> write this week's match report
● Read 3 files
● Ran the matcher on week 38
● Wrote docs/REPORT-invoice-match-20260918.html
>
0 0UTF-8LFHTML
Download for Windows Download for macOSComing soon

Version 0.9.1 (96797111) for Windows 10 and 11, 64-bit, 241 MB.

SHA-256 a54bbed2c5227ef6f49278564e7018f36445ec11468dd0b245eaba697edbd3b9