The business half

The rest of the week.
In the same window.

Contacts, invoices, quotes, hours and sponsorship deals, each one a file. You can do everything here with buttons, and the agent beside you can do all of it from a sentence.

VectorBrain with a conversation on the left and the CRM on the right. Asked to bill Tidewater Ferries for the week and say who is late, the agent ran business.dashboard and hours.bill, then answered: INV-2026-019 drafted, 14.5 hours at 95.00, USD 1,377.50, nothing sent; INV-2026-016 to Kettle & Pine is 10 days late. The CRM dashboard beside it shows USD 4,980.00 owed, 2,000.00 paid this month, 642.40 spent, one invoice late, and a Next list with Draft a chase, Mark paid and Mark done buttons.

VectorBrain’s real interface, running on an invented business: the people, companies and amounts are made up.

01

Today is one read, and no model call.

The next deadline, what is owed this week, and what ran while you were away. It is read off your files and the local database, so it costs nothing to keep open beside a conversation.

Done on a deadline and Mark paid on an invoice are the same commands the CRM runs. Nothing here has a second copy of anything.

Reminders and scheduled jobs
The Today tab for Friday 25 September. Five tiles: $12.90 balance, $3.56 spent in 7 days, 7 owed with 1 late, connections 1 of 1, 2 automations on. What is next: the deadline “Launch post goes live”, due Saturday, with Done and Open. Owed this week: a late invoice to Kettle & Pine, an invoice due today, the Monday money check automation, two deal dates, a deadline for the accountant and a usage-rights end, each tagged invoice, deadline, deal or automation.
02

Hours become an invoice. The app does the sums.

hours.bill gathers a client’s unbilled days into one draft invoice and marks each day billed. The rate comes off the file, then the contact, never from the model, and a day with no rate is refused by name.

Every total is added in hundredths by the app. A model is never asked what you earned, because a number recalled rather than worked out is wrong quietly.

One set of commands for you and the agent
The Money tab for September 2026. Four answers: am I making money, $1,357.60 kept from $2,000.00 in and $642.40 out; who owes me, $4,980.00 across 3 unpaid invoices with $1,200.00 late, plus one draft not sent for $1,377.50; what is coming, $13,280.00 in open quotes and invoices due in the next 30 days; what it costs to keep going, $332.00 a month. Below, a twelve-month running total, a Needs you list, and the ledger with the draft INV-2026-019 at the top.
03

A sponsorship deal is one file you can read.

The sponsor, the fee, the kill fee, the exclusivity, the usage rights and when each one ends. The deliverables are a checklist in the file, so ticking one marks it delivered.

Seven stages, from pitched to paid or lost. Invoice 50% drafts an ordinary invoice to the sponsor, so the money needs nothing new to count it.

Why everything is Markdown
Editing a deal called Lumen notebook video. The deal: sponsor Priya Venkataraman of Lumen Paper Co., stage producing, sent as Field notes. Money: fee 3,200 USD, 50% on signing and 50% on posting, a 50% kill fee, 180 in product received. Rights: no other stationery sponsors until 15 November 2026, organic reposts only until 31 March 2027. Below, the file’s body: a note about the brief and a checklist of five deliverables, the first ticked.
04

Every date lands on one month.

Each dated deliverable, and the day exclusivity and usage rights end, sits beside invoices due, deadlines, retainers and the jobs the app promised to run.

It is one read with no model call, so it cannot invent a meeting. An end date is never shown as late: once it passes, it is done.

What the app promised to do
The Calendar for October 2026. Purple chips for the business: a retainer and a podcast test read on the 1st, a deadline on the 2nd, a lens shoot on the 3rd, a notebook video on the 6th and 7th, invoices due on the 9th and 15th, and more deal dates on the 16th, 20th and 31st. Green chips for two weekly automations. One chip is open: sponsorship deal, Northlight lens test: Dedicated video, posts, on Friday 16 October, with Open and Open the file.
05

Bring the list you already have.

A Google or Outlook contacts export, or a card statement as expenses. You see the matched columns, the duplicates and the first three files before a byte is written.

Every row becomes its own file, and Undo takes back exactly that import. Import reads a file from anywhere on your disk, so only you can run it, never the agent.

The wall around your files
Import contacts. The file contacts.csv is recognised as a Google Contacts export and its columns are matched: First Name plus Last Name to name, Organization Name to company, E-mail 1 to email, and so on. 212 rows: 196 new, 9 already on a contact, 3 repeated in the file and skipped, 4 with no name, company or email. The first three contacts as they would be written, and a button: Import 196 contacts. Undo takes back exactly this import.
What it will not do

It keeps the records and drafts the documents. A chase is a draft for you to send, a retainer is a nudge on the 1st and never an invoice by itself, and totals in two currencies stay two lines. It is a record, not accounts: no VAT, no tax categories, no double entry. The agent cannot create or delete the books, or import from outside them.

At a glance

The business half in numbers.

Where it lives
One folder under your VectorBrain home: business.md plus contacts/, deals/, invoices/, quotes/, expenses/, receipts/, hours/ and deadlines/vb-cmd-fs/src/walk.rs
Contact fields
19 header keys, from name and email to rate, terms, status and a monthly retainervb-cmd-core/src/businesses.rs
Deal stages
7: pitched, negotiating, signed, producing, posted, paid, lostvb-cmd-memory/src/ladder.rs
Invoice numbers
INV-2026-019, one over the highest, claimed so two drafts can never share one; quotes are QUO-, credit notes CN-vb-cmd-core/src/business_invoice.rs
Lines per invoice or quote
Up to 60; the app multiplies qty by unitvb-cmd-core/src/business_invoice.rs
A quote stands
30 days from issue unless it says otherwise; accepting it drafts the invoicevb-cmd-core/src/business_quote.rs
Money arithmetic
Exact hundredths, per currency, never converted, never a modelvb-cmd-core/src/business_money.rs
Looks ahead
7 days for the dashboard’s week, 90 days for what is comingvb-cmd-core/src/business_dashboard.rs, business_overview.rs
Branded invoices
A brand’s PNG or JPEG logo up to 2 MB, and three colours: ink, accent, papervb-cmd-core/src/brand_look.rs
For the accountant
Five CSV sheets: contacts, deadlines, deals, invoices, expensesvb-cmd-core/src/business_csv.rs

The details,
for the careful.

Where does VectorBrain keep contacts and invoices?

In Markdown files, one per contact, deal, invoice, quote, expense, day of hours and deadline, in one folder under your VectorBrain home. A contact is a header of known keys with notes and a dated log under it. You can read them without the app, keep them in version control, and leave with them.

Can the AI agent use the CRM, or only me?

Both. Every button runs a command the agent can also call, so “bill Tidewater for this week” in a conversation does what Bill these does on the dashboard. A new contact is one file write with the known header keys. Four things are yours alone: creating the books, deleting them, tying a project to a client, and importing a CSV. One set of commands

How does an invoice get made?

invoice.draft claims the next number, INV-2026-019, and writes the file with the lines and totals worked out by the app. hours.bill does the same from a client’s unbilled days, and quote.accept does it from a quote’s lines and links the two. Export PDF prints it beside the file, wearing the brand it is sent as. Marking it paid, or part paid by an amount, is one command.

What happens when a client was overcharged?

A sent invoice is never edited, because the client has a copy of what it said. A credit note, CN-2026-001, is a second file with a negative amount that names the invoice it reduces. It cannot be larger than that invoice, and a draft is edited rather than credited.

What does an invoice look like?

An invoice sent as a brand carries that brand’s logo, a PNG or JPEG up to 2 MB, and its three colours: ink for the words, accent for rules and the total, and paper for the page. The sender block comes from the brand’s own brief. With no brand it is a plain invoice with the business’s name. Each business can override the template with one HTML file.

Can it take payments or send invoices?

No. It keeps the record and drafts the documents; you send them. A chase for a late invoice is drafted from the facts for you to copy. The payment line refuses anything shaped like an account number, and the PDF export refuses it again, so bank details never end up in a file an agent reads.

Is it accounting software?

No. It is a record, not accounts: no VAT, no tax categories, no reconciliation and no double entry. Totals are per currency and never converted. For the year end it writes five CSV sheets an accountant can open, with any file it could not count listed with the reason.

What is a sponsorship deal in VectorBrain?

One file per deal in deals/, for people who make things in public: the sponsor, fee, payment terms, kill fee, product received, exclusivity, usage rights and their end dates in the header, and the deliverables as a checklist in the body. Each dated deliverable and both end dates appear on the Calendar and on Today.

What does Today cost to keep open?

Nothing. Today is one idea.today read: headers off your pages and rows out of the local database, with no model call. The Calendar is the same, one idea.month read, and your own calendar, when connected through an MCP server, is read and never written back.

Keep your books
where your work is.

Files you own, sums the app works out, and an agent that can do the paperwork while you do the work.