Hermes Agent for accounting is safest when you build it as its own "books" profile that reads paperwork, fills a prep workbook and drafts emails, while a person checks every figure and presses every Send.
This is the build order I'd follow for a plumber, a café or a two-person bookkeeping practice.
Every command and config key below comes from the official Hermes Agent docs and the v0.23.0 release, which Nous Research shipped on 5 November 2026.
Nothing here is tax, legal or financial advice: it covers the admin set-up around the books, not the decisions in them.
If you want my team to look at where an agent fits in your firm first, book a free SEO strategy session.
What The Books Profile Will And Won't Touch
Write the boundary down before you install anything, because it becomes your skill and your cron prompts later.
- Will: read PDF, Word and Excel files, fill a prep workbook, read payment data from Stripe, Square or PayPal, run checklists on a schedule and draft emails.
- Won't: post to your ledger, pay a supplier, issue a refund, file a return or send a client email on its own.
I checked the plugin catalog and the Nous-approved MCP catalog at tag v0.23.0.
Neither one lists Xero, QuickBooks, Sage, Wave, FreshBooks or Zoho Books.
So your accounting software stays the record, and files move into it by export and import, done by a person.
Step 1: Create A Separate Profile For The Books
The profiles docs describe a profile as its own Hermes home with its own config.yaml, .env, SOUL.md, memories, sessions, skills, cron jobs and state database.
That separation is the whole point here: your finance logins never sit in the same .env as your marketing agent.
hermes profile create books
books setup
books chat
Creating the profile also creates the books command, so every later step runs against the right home.
The docs warn against pointing two agent processes at one profile, because both write memory and each loads the other's writes.
One profile, one job family, one person who owns it.
A practice with several clients can go one step further and give each client a profile of its own, so one client's memories and files never show up in another client's session.
Step 2: Pick The Model, And Consider Keeping It Local
The providers page says Hermes works with any OpenAI-compatible endpoint, and local Ollama is reached through the Custom Endpoint flow at http://localhost:11434/v1 with no key.
The same page lists privacy-sensitive work and offline use as what local Ollama is best for, which is a fair description of client paperwork.
One gotcha from that page: with small local models, the full default toolset plus the system prompt can go past a 32k context window.
The fix it gives is to restrict the toolset, for example -t file,web, or load the model with a larger context.
Whatever you choose, pin it for scheduled work with cron.model so a later change to your chat model doesn't move your month-end jobs.
Step 3: Give The Agent Its Own Receipts Mailbox
The email gateway uses plain IMAP and SMTP, and the docs ask for a dedicated account rather than your personal one.
Put the settings in the books profile's .env, using an app password:
EMAIL_ADDRESS=receipts@yourfirm.example
EMAIL_PASSWORD=<app password>
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_SMTP_HOST=smtp.gmail.com
EMAIL_ALLOWED_USERS=owner@yourfirm.example,office@yourfirm.example
EMAIL_AUTHSERV_ID=mx.google.com
EMAIL_HOME_ADDRESS=owner@yourfirm.example
Then start it with books gateway start, or install it as a service so it survives a reboot.
On first start the adapter marks everything already in the inbox as seen, so only new mail gets processed.
PDF attachments are cached for file access, and photos of receipts go to the vision tool.
Gotcha: Automated Invoice Emails Never Reach The Agent
This one catches people on day one.
The adapter silently ignores senders such as noreply@, no-reply@ and bounce@, plus any mail carrying Auto-Submitted, Precedence: bulk or List-Unsubscribe headers.
If a supplier's billing system mails from an address like that, the invoice sits there unread.
Forward those invoices yourself from an address on the allowlist, or drop the PDF into a folder the agent reads.
Two more traps: leave out EMAIL_AUTHSERV_ID and every message needing an authenticated sender is dropped, and the gateway replies in-thread to each message it handles, so keep the allowlist to your own staff.
🔥 Want the books profile built with you, not just described? Inside the AI Profit Boardroom you get step-by-step video trainings, the installable Agent OS, four coaching calls a week and 3,400+ members working through set-ups like this one. → Join the AI Profit Boardroom
Step 4: Test How It Reads Your Actual Paperwork
The document extraction page says read_file converts .docx and .xlsx out of the box.
PDFs need the optional firecrawl-anydoc converter, which installs on first use where security.allow_lazy_installs allows it.
Scanned receipts are the weak spot: PDF conversion reads the text layer only, so an image-only page comes back empty.
When more than 20% of a document (or 10+ pages) yields no text, read_file adds a coverage warning that names the empty page ranges.
The recovery paths in the docs are rendering a few pages and reading them with vision_analyze, or the ocr-and-documents skill for bulk OCR.
Before you schedule anything, hand it ten real documents from last month and compare every field it pulls with the original.
Step 5: Write Your House Rules As A Skill
Skills live in ~/.hermes/skills/ as a SKILL.md file, per the skills docs.
Lean on the bundled ones listed in the skills catalog: microsoft-office creates, reads and edits Excel and CSV files offline, pdf handles PDF work, and document-to-action-items keeps every extracted field tied to where it came from.
Then add your own short skill for the way your firm works:
---
name: books-house-rules
description: How this firm preps documents for the bookkeeper.
---
1. Name each file YYYY-MM-DD_supplier_docnumber.pdf and move it to prep/inbox/.
2. Add one row per document to prep/intake.xlsx: date, supplier, doc number, file name.
3. Copy figures exactly as printed. If a field is unclear, write UNSURE.
4. Never edit any file in exports/. Work on copies in prep/.
5. Draft only. Never send email. Save drafts to prep/drafts/.
Then switch on the write-approval gate so the agent can't quietly rewrite those rules:
skills:
write_approval: true
With that on, every skill create, edit or delete is staged for you to approve instead of committed straight away.
Step 6: Connect Stripe, Square Or PayPal Read-First
The Nous-approved MCP catalog has vendor-hosted entries for all three, each signing in over OAuth.
In the manifests, Stripe reads "Payments, customers, and invoices", Square reads "Catalog, orders, and payments" and PayPal reads "Payments, invoices, and subscriptions".
Sign in with hermes mcp login stripe, then tighten the entry using the keys from the MCP config reference:
mcp_servers:
stripe:
url: "https://mcp.stripe.com"
auth: oauth
trust: untrusted
tools:
exclude: [delete_customer, refund_payment]
That exclude list is the exact one the docs use for Stripe.
With trust: untrusted, every write-capable call stops for Allow Once, Session or Always before it runs.
Never run this profile in YOLO mode or with approvals.mode: off, because both skip that prompt.
Skip the Plaid entry for this job: its manifest describes the Plaid dashboard for integration debugging, not a bank feed.
Step 7: Schedule The Checklists With Cron
The cron docs accept plain language or cron expressions, let you attach skills and deliver results to a chat, a file or a platform.
hermes -p books cron create "0 8 * * 1-5" \
"File yesterday's new documents into prep/ and list anything marked UNSURE." \
--skill books-house-rules
hermes -p books cron create "0 9 1 * *" \
"Build last month's prep pack: intake list, unmatched items, missing documents. Draft only." \
--skill books-house-rules --skill microsoft-office
Results go to EMAIL_HOME_ADDRESS if you set it, or to the chat you pick.
Leave cron_mode: deny as it is: the security page says it blocks dangerous commands in scheduled runs, so the agent has to find another path.
A scheduled job also can't create, edit or remove other jobs unless you opt in.
Step 8: Let Stripe Events Wake The Agent
The webhooks page lists Stripe among the services that can trigger runs, with HMAC signature checks.
The docs' automation blueprints include a Stripe payment-monitoring example along these lines:
hermes webhook subscribe stripe-payments \
--events "payment_intent.payment_failed,charge.dispute.created" \
--prompt "Summarise this Stripe event for the office. Flag disputes as urgent. Draft only."
Webhook sessions run with unattended_mode: deny by default, so a risky command is refused instead of waiting for someone who isn't there.
What lands in your chat is a summary; the follow-up stays a human call.
For an online shop, that means a failed card payment becomes a short note with the reason Stripe gave, and the owner decides whether to retry or contact the customer.
Outbound Email: Write "Draft Only" Into Every Job
Hermes approvals cover dangerous shell commands and write calls on untrusted MCP servers.
No docs page describes an approval step before the gateway sends a message.
The bundled email-inbox-triage skill defaults to read and draft rather than send or delete, which helps.
Still, put "draft only, never send" in the skill and in every cron prompt that touches clients.
For a client who owes you statements, the agent writes the chase email into prep/drafts/, and the owner reads it and sends it.
Worked Example: A Plumber's Supplier Invoices
A plumbing firm with two vans gets merchant invoices by email and receipts on paper.
- The office forwards each invoice email to the receipts mailbox; the drivers send phone photos of paper receipts.
- The 8am job files each document into
prep/inbox/and adds a row to the intake workbook. - Anything blurred or scanned without text gets marked UNSURE with the page number.
- On the 1st, the month-end job builds the prep pack and drafts a note listing missing receipts per van.
- The bookkeeper checks the pack against the originals, then imports what's right into the accounting software.
The agent never touches the ledger in that flow, and nobody has to retype a supplier name.
Run that loop by hand for one full month before you trust the schedule, and keep a list of every field the bookkeeper had to correct.
Each correction becomes a new line in the house-rules skill, which is how the prep gets cleaner month after month.
📞 Want a second pair of eyes on your agent set-up? Book a free SEO strategy session and my team will walk through where automation fits your business and where it shouldn't. → Book your free call with my team
The Pre-Flight Checklist Before The First Month-End Run
EMAIL_ALLOWED_USERSholds staff addresses only, andEMAIL_AUTHSERV_IDis pinned.skills.write_approvalis true.- Every payment server is
trust: untrustedwith refund and delete tools excluded. - No YOLO, and
approvals.modeis not off. - Checkpoints are switched on with
checkpoints: enabled: true, since they're opt-in. - The cron model is pinned, and every client-facing prompt says draft only.
The AI Profit Boardroom trainings walk through checklists like this one on live calls, if you want to see it done on screen.
Where Hermes Stops And Your Bookkeeper Takes Over
Hermes is the prep layer: it collects, names, extracts, lists and drafts.
Your bookkeeper or accountant decides how things are coded, what gets posted and what goes to the tax office.
If you'd rather run this on a hosted agent with built-in draft-and-send email, compare our Grok Bot for accounting build.
For the wider rollout across sales and support, the AI Profit Boardroom has the templates, and my team can map it with you on a free call.
Also On Our Network
- 🌐 Whether a small firm should use it, with five owner use cases and the risks
- 🌐 A nine-criteria scorecard for bookkeeping work, with strengths and limits
- 🌐 Five copy-paste bookkeeping prompts and a weekly rhythm for your Agent OS
- 🌐 Which cloud or local models to pin to each bookkeeping job, with scores
- 🌐 The complete Hermes Agent for Accounting guide on the AI Profit Boardroom blog
FAQ: Hermes Agent For Accounting
Which accounting software does Hermes connect to?
None directly. The v0.23.0 plugin catalog and Nous-approved MCP catalog have no Xero, QuickBooks, Sage, Wave, FreshBooks or Zoho Books entry, so a person exports and imports the files.
Why does the agent ignore some invoice emails?
The email gateway silently drops mail from noreply-style senders and mail with bulk or List-Unsubscribe headers. Forward those invoices from an allowlisted address instead.
Can Hermes read scanned receipts?
PDF conversion reads the text layer only, so image-only pages come back empty. read_file warns about the gaps, and the docs point to vision_analyze or the ocr-and-documents skill to fill them.
How do I stop it issuing a Stripe refund?
Mark the Stripe server trust: untrusted and exclude refund_payment and delete_customer, as the docs show. Write-capable calls then ask before they run.
Will Hermes ask before it emails a client?
No docs page describes an approval step for outgoing messages. Write draft only into the skill and every cron prompt, and have a person send.
📺 Video notes + links to the tools 👉
🎥 Learn how I make these videos 👉
🆓 Get a FREE AI Course + Community + 1,000 AI Agents 👉
About Julian
I'm Julian Goldie, an SEO entrepreneur, author and founder of the AI Profit Boardroom, which has 3,400+ members.
I help business owners scale with AI agents, automation and SEO.
- I've built a 7-figure SEO and link building agency, Goldie Agency, with a team of 70+ SEO experts.
- I've grown a YouTube channel to 400,000+ subscribers.
- I wrote "Link Building Mastery".
- My Udemy courses have taught over 29,000 students.
→ Get my best AI training inside the AI Profit Boardroom
Build the books profile this week, run one month by hand, and book a free strategy session if you want my team to plan the rest of your Hermes Agent for accounting set-up.











