Skip to main content
A local page for the person who signs off on the work. Approving a batch, working the bank feed, checking what a run did, and reading what the agent has been told about a client all happen here, without opening a chat window. Open it from Start Menu → Zeno → Zeno for QuickBooks Desktop. Use that shortcut rather than a typed address: it opens your browser on the right port and signs it in to your own console. It usually sits at http://127.0.0.1:8082, but not always. On a PC where more than one person has a Windows account, whoever opens Zeno second gets the next free port — 8083, then 8084 — because a port belongs to the machine rather than to the person signed in. The shortcut and the tray icon always know which one is yours. Dynamic Multi-User Port Allocation Badge While the console is running there’s a Zeno icon in the notification area. Double-click it to open the page. On Windows 11 a new icon starts hidden behind the ^ chevron at the left of the clock — drag it onto the taskbar to keep it in sight. Right-click it for the menu:
  • Stop the console closes this page and nothing else. It’s only offered when a chat client is serving the console alongside its QuickBooks connection, which keeps working.
  • Quit Zeno (every chat app) stops every copy of Zeno on this PC — the console and the connection each chat client started. The chat clients will show Zeno as disconnected until you quit and reopen them. This is the one to use before an update, or when you want QuickBooks left alone.
Each chat client runs its own copy of Zeno, so Task Manager showing several qb-mcp.exe entries while three clients are open is normal. Quit from the icon ends all of them — except one that’s in the middle of a QuickBooks request, which finishes first and then closes on its own. Quit tells you if that’s the case; it never cuts a request short. It reads the same local file the tools write to, so it’s current whether or not a chat client is running.

Today

Today is the landing page once a company file is ready. It’s one list of what is waiting on you, across every company this workstation holds, in the order to work it:
  • Waiting on you — plans awaiting your approval, bank feed lines nobody has coded, and knowledge or playbooks the agent drafted and nobody has confirmed. Each row opens the page where the decision is made.
  • Housekeeping — an approved plan nobody has applied, a company file whose setup isn’t finished, a mirror that hasn’t been refreshed in a week, a recent run with lines that failed to post. Not urgent, but the agent works worse the longer each is left.
The company picker scopes it like every other page. With All companies selected, unfinished company files collapse into one line so a firm that registered its whole client list doesn’t see a wall of setup rows in front of the plan that’s actually waiting. When nothing is waiting, it says so. The evaluation allowance and a newer release aren’t rows here — they’re the banner above every page.

Finishing company setup

Setup Center is the landing page until a company file is ready. It shows five checks for every registered company: exact file identity, permission, access choice, mirror coverage, and a harmless end-to-end test. Use Open in QuickBooks to launch the registered file, then Copy next step to send the exact unfinished action to your chat client. The console never opens a QuickBooks session itself; it coaches the permission dialog while the MCP connection does the check. After setup, Useful next steps reflects the install’s actual state. It can surface a stale mirror, a reviewed plan that was never applied, draft knowledge or playbooks, missing coding rules, and read-only questions worth asking. Copying a request doesn’t execute it.

Picking a company

The sidebar has a company picker, and it scopes every page that’s about one client’s books. All companies shows everything this workstation has done. Every page has its own address, and the address carries the company: /knowledge?company=Ridgeline%20Properties%20LLC. Send a partner the link rather than a sequence of clicks.

Reviewing a plan

Plans lists open work. Pending plans are listed with the company, who prepared each one, when, how many entries, and how many are blocked. Applied plans are hidden by default; tick Show plans that were already applied to see them. Open a plan to get every entry as a row: line number, date, type, name, amount, coding, reference, and the verdict planning reached — ready, worth checking, blocked, already posted. Against each line, record Include or Exclude. Put your name in the reviewer field and save the table in one go.

Deciding many lines at once

A migration arrives as fifty-six lines of which nine are blocked, and the answer to all nine is the same answer. Giving it nine times, by finding nine rows and clicking the right button on each, is not review — it’s transcription. So the table has a tick box per line, shift-click for a run of them, and a header box for everything currently shown. Lens chips cut the table down to the lines sharing an answer — the blocked ones, the ones worth checking, the ones already posted. A sticky bar then records one decision and one reason across the whole selection. The selection is derived from the rows actually on screen, so a row that leaves the current lens cannot be swept into a bulk action you can’t see. Sticky Review Decision Bar
Excluding a line records a decision; it doesn’t perform one. qb_apply_batch reads those decisions when the agent runs it, skips what you excluded, and names the exclusions and who made them in its result.

Getting here from the chat

Plans, runs, the plan list and qb_review_batch each hand back a link to their own page on this console, and the link carries your account’s token so a first-time reviewer doesn’t land on the page saying the console belongs to somebody else. That is the intended handover: the agent gives you a link and two sentences, not sixty rows of markdown pasted into a transcript. A table in a chat window can’t be ticked, has nowhere to put the reason you typed, and keeps the approve button somewhere else — which is how the careful step in the middle of this product gets performed on a picture of itself. On a workstation with no console running, the tools say so and fall back to reading the table out loud. Only one program can talk to a company file at a time, and it’s the one the agent drives. If this page posted the approved subset itself, a second program would be writing to a client’s books. So a plan reviewed here still gets applied by asking the agent to apply it — with the line-by-line decisions coming from whoever is accountable for them, journalled under that person’s name. You don’t have to go back and say so, though. Once the agent has handed you the link it waits for your verdict (qb_await_verdict), so approving or rejecting on this page reaches the conversation on its own and it carries on from there — applying on an approval, or reading your reason on a rejection. If the conversation has moved on, the page’s “Apply this plan in chat” prompt hands the approval over instead.

The bank feed

The month of bank and card transactions, worked as a queue. Its buckets are named for the question you’re asking, not for the state a row happens to be in: Needs a decision is what the page opens on, because it’s the only bucket that is work. Then Ready to plan, Already in the file, Dropped, In a plan, and Posted. Code a line here — account, payee, class, memo — one at a time. A line a coding rule filled in names the rule and links to it, since a coding you disagree with is usually a rule to fix. An account with no QuickBooks account named yet is called out at the top, because until it’s mapped its lines have nowhere to post. On a live bank connection the page also shows what the bank says each account holds, as of its last read, and how many lines are still at the bank and not in QuickBooks; the comparison with the QuickBooks balance is read live in chat (qb_bank_balance). Nothing on this tab writes to QuickBooks. Coding a line fills in what a plan would post; planning and applying still happen through the agent. See the bank feed for the whole workflow.

Runs

Every run, most recent first, with the company, what the batch was, who approved it, and how many entries posted or failed. Click a run for its entries — line number, type, date, name, amount, reference, status, and the QuickBooks transaction id each became. Failed entries carry QuickBooks’ own message. Reversals appear in the list like any other run, marked as reversals and linked to the run they undo. To undo a run, ask the agent:
The console shows you that command rather than offering a button, for the same reason it doesn’t post plans — see one caller at a time.

Work log

What was done and why, filtered by company and by period. Add entries here directly — the log is a record for people, and a person can write in it as well as the agent can. Entries the server generated for a session that ended without logging are labelled as machine-written. Treat one as a prompt to write the real entry.

Knowledge, playbooks, and coding rules

The console separates what the agent has been taught into coding rules, knowledge, and playbooks. Each is readable and editable by the person whose judgement it encodes. See what it remembers for what belongs in each. Knowledge — notes about a client’s books, grouped by category, with the vendors and customers each is anchored to. Drafts are marked. Confirm is what makes an entry start surfacing on its own during work; until then it does nothing. Playbooks — written procedures, with their slots and when to run them. Also drafts until confirmed, and a draft can’t be run. Coding rules — what each matches, what it fills in, whether it’s an auto rule or a suggestion, how many times it’s been used, and when it last applied. Move a rule between Auto and Suggest, or Forget it, which stops it applying and changes nothing already posted.

Company files, status, and licence

Setup Center tracks authorization and mirror progress for each file. Company files lists what this workstation has registered — see several company files. Status describes this install: version, whether writing is enabled, where the run journal lives, this machine’s licensing id, and the name QuickBooks shows for it in Edit → Preferences → Integrated Applications. Licence shows your licence state, who it’s issued to, when its update window ends, your batch limit, and — on an unlicensed install — how many of your 250 transaction postings you’ve used. Paste a key and click Save key. Restart the connection in your chat client afterwards — the licence is read once, when the server starts. The same page shows this machine’s id, which support needs to move a seat to another workstation.

What it can and can’t change

The console never writes to QuickBooks. Nothing on this page reaches a company file. What it does change is local: plan decisions, knowledge, playbooks, coding rules, work-log entries, and the licence key. It listens on 127.0.0.1 only, so nothing on your network can reach it. Requests claiming to come from another host are refused, and a web page you happen to have open can’t read from it or post to it.

On a workstation two people share

Loopback is shared by everyone signed in to the PC, so 127.0.0.1:8082 is not private on its own. Each Windows account therefore gets its own console: its own port, and a token created for that account which the page has to present. A browser belonging to anyone else is refused with a page saying so, rather than shown someone else’s clients.
This matters most on a workstation with fast user switching, where a colleague’s session keeps running in the background after they switch away. Their console keeps its port; yours opens beside it.
The separation is between accounts, not between people sharing one login. Anyone signed in as you sees your console, the same as they’d see your QuickBooks.