Skip to content
ttyinv

LOCAL-FIRST · EXPORT WHEN READY

Plain text in.Polished invoice out.

Create, preview, and refine your invoice in the browser, then export a client-ready document when it is ready. The same Markdown source works in the open-source CLI, and your invoice content stays on your device. Multi-currency tables, authored totals, and deliberate page breaks keep complex invoices readable.

POLISHED EXPORTSINVOICE DATA STAYS LOCALCLI + WEB PARITYREST + MCP PARITY
kay@workstation: ~/invoices● READY

$ttyinv validate invoice.md

✓ ttyinv/v2 · 3 sections · no diagnostics

ACME STUDIOINV-0042
FROMAlex MorganBrooklyn, NY
BILL TONorthstar LabsToronto, ON
DESCRIPTIONAMOUNT
Product strategyEUR 1,200.00
Interface designEUR 2,400.00
TOTALEUR 3,600.00
Signed byAlex Morgan
ACME STUDIODARK / 01
FROMAlex Morgan
BILL TONorthstar Labs
DESCRIPTIONAMOUNT
Product strategyEUR 1,200.00
Interface designEUR 2,400.00
TOTALEUR 3,600.00
invoice.pdf42 KBEXPORTED ✓
TTYINV / V2SOURCE OWNEDCLI + WEBLOCAL-FIRSTMULTI-FORMAT EXPORT

Made for humans.Driven by Agents

Shape an invoice by hand in the visual editor, or let your authenticated agent create and validate the same strict ttyinv/v2 document through REST or MCP. Multi-currency tables, authored summary rows, and page-break intent travel with that source.

Connect your agent
privacy.boundaryEXPLICIT BY DESIGN
01 / HOSTED EDITOR
Drafts stay in this browser.
02 / REST + MCP
Your agent makes an explicit network call.
03 / SERVER
Invoice payloads are processed transiently, not saved.

ttyinv validate invoice.md --json

THE WORKFLOW

Human-readable at every step.

002—004
[01]

Own the source

Your invoice is a readable Markdown file—not a record trapped in somebody else’s dashboard.

[02]

Fidelity without hand-fixing

Keep multi-currency display columns, authored subtotal and grand-total rows, and the amounts you wrote visible in the final document.

[03]

One contract, every surface

The visual editor, open-source Rust CLI, REST API, and MCP transport share the same strict invoice contract, because they all run the same engine.

[04]

Breaks where you choose

Place an explicit page-break marker before a section when a long invoice needs a predictable new page.

ONE FILE. NO LOCK-IN.

An invoice you can diff, version, and understand.

The ttyinv/v2 grammar keeps the structure predictable while leaving the content comfortably human. Commit it to Git, email it, or archive it for years.

  • Strict validation before export
  • Git-friendly plain text
  • Portable across the CLI and web editor
  • Authored totals and deterministic page breaks
invoice.mdUTF-8 · ttyinv/v2
---
schema: ttyinv/v2
format: code-comma-dot
---

# Interface design sprint

- Number: INV-0042
- Issued: 2026-08-23
- Currency: EUR

## From

- Name: Northstar Studio

## Bill to

- Name: Acme Research Ltd

## Design work

| Description      | Days |    Rate | Amount (EUR) |
| :--------------- | ---: | ------: | -----------: |
| Product strategy |    1 | 1200.00 |         auto |
| UI design        |    3 |  800.00 |         auto |

APP.TTYINV.COM

Your next invoice starts here

Open the visual editor, import or paste Markdown, and preview instantly. Export a client-ready PDF, PNG, or HTML file when you are ready; your invoice content stays in this browser.

PDF · PNG · HTMLStart an invoice