Week of July 13, 2026
Session-long undo, a sharper search box, and a read-only AI connection
Undo and redo now cover your whole session instead of the last few actions, the ledger search box understands states, date ranges, and split line items, and you can connect an AI assistant to a read-only view of your finances.
Ember is in private beta and under active development. These are the changes made during that week of building and testing.
Undo and redo that last the whole session
The ledger's undo stack used to live in your browser: it held the last fifty actions, forgot everything on reload, and quietly skipped anything you did to a row that had scrolled out of the filtered view. It now lives on the server, so it covers every edit you make for as long as your session lasts (including bulk actions, matches, and deletions) and survives a refresh.
There's also a history panel, on the clock button beside the undo and redo arrows. It lists what you changed, in order, and lets you step back to any point in the session rather than pressing undo repeatedly to get there.
Connect an AI assistant to your finances
Ember can now expose a read-only view of your accounts, net worth, and transactions to an external AI agent, so you can ask questions about your own data in the assistant you already use. It's off until you turn it on, it's authenticated with a personal access token you generate and can revoke, and it is strictly read-only: an agent can look at your finances but cannot change anything. You'll find it in Settings, under Security.
Search that understands the ledger
The search box picked up four things this week:
- Filter by state. Type
isand pick from Cleared, Reconciled, Uncleared, Pending, or Removed by bank.is:clearedworks directly if you'd rather type it. - Open-ended and two-sided date ranges. You could already search a month or a specific day; now you can ask for everything after a date, before a date, or between two of them.
- Search inside splits. A term now matches a split transaction when any of its line items matches, so searching an amount finds the split leg carrying it. When a line item is the reason a split matched, the ledger shows just that line beneath the parent rather than the whole breakdown.
- Find a transaction's relatives. Hold Alt and press a cell's key to search the ledger for that cell's value, the fast way to find a transfer's other leg, a refund, or a duplicate your bank sent twice, without retyping the date and amount by hand.
Suggestions for duplicate payees and recurring payments
Two new suggestion surfaces built on payee normalization. Ember now spots payees that are almost certainly the same merchant under different spellings and offers to merge them, and it flags payments that look recurring so you can turn them into a scheduled transaction instead of finding out each month when the charge lands.
Copy any table straight into a spreadsheet
Getting numbers into Google Sheets used to mean exporting a CSV, finding the file, importing it, and telling Sheets how to read it. The reports and the ledger selection now have a Copy for Sheets button that puts the table on your clipboard so it pastes into a spreadsheet already in columns.
The keyboard reaches the whole ledger
About two dozen changes went into keyboard access this week, and the theme is the same throughout: every menu, dialog, and picker in the register now takes focus when it opens, moves its highlight with the arrow keys, and gives focus back where you left it when it closes.
Concretely, that covers the row context menu and its submenus, the column-header sort menu, the scheduled-row and recurring menus, the edit-history panel, the keyboard cheat sheet, the reconcile drawer, and the confirmation dialog for editing a reconciled row. Buttons inside a ledger row (save, cancel, revert, and the small row actions) now activate on Enter and Space instead of being swallowed by the table beneath them. Pressing Escape inside a picker and then Enter reopens it, rather than dead-ending.
Two new shortcuts joined the set: Shift+A opens the account picker with its filter box focused, and r duplicates the focused row with its amount reversed, the quick way to record a refund you're expecting against the charge it will cancel out.
Improvements
- Transactions: Category cells show the full path (
Housing › Rent) everywhere they appear, so two categories sharing a leaf name are no longer ambiguous. A split whose line items all share one category now shows that category instead of "Split (2 categories)". - Transactions: Sorting by amount can now compare magnitude, ignoring whether money came in or out, so a $500 deposit and a $500 charge sort as equals. A plain click on a column header replaces the sort; Shift-click builds a multi-column chain.
- Transactions: The approval column is sortable, Page Up and Page Down move a full screen instead of ten rows, and the register's scrollbar is actually visible.
- Accounts: Closed accounts collect in their own sidebar folder instead of disappearing from the navigation. Section headers show their total, and All Accounts shows your net worth.
- Dashboard: The headline figure is true net worth, matching the trend line below it and the account list on mobile. It previously showed an investments-only total under a "Total Net Worth" label.
- Bulk actions: Clearing, unclearing, and unreconciling a large selection now take one request instead of one per row, which removes the lag and the intermittent failures on big selections.
- Bulk actions: The payee picker opens pre-filled when every selected row already shares a payee, and the category picker widens to show full category paths when there's room.
- Import: CSV import preview is roughly eighteen times faster on large files and shows a progress state. Imported rows always arrive unreconciled; reconciling is something you do in Ember.
- Reconcile: Toggling a row updates immediately instead of waiting on the
server, and the bank-reported balance field accepts a pasted
$30,000.00with the dollar sign and commas intact. - Investments: The "Top mover" card now surfaces the largest move in either
direction, so a significant decline can't hide behind a smaller gain. Dollar
fields accept quick arithmetic (
40+2), matching the cash ledger. - Splits: Split line items carry their own tags and related-transaction links. Split rules can keep the original row's tags, on by default. When Save is unavailable, the editor says which condition isn't met instead of showing a reassuring "Balanced".
- Amazon extension: A toolbar popup lists every cached order with a filter box. Order matching widened to twelve days to cover the gap between ordering and shipping, and the extension can now offer to enable an account by its name, so a co-branded card like "Chase Amazon" is recognized even when most of its charges aren't from Amazon.
Fixes
- Transactions: Holding the down arrow no longer makes the ledger lurch around, and Shift-clicking a checkbox selects the range again instead of just the row you clicked.
- Transactions: Future-dated scheduled entries no longer count toward your uncleared balance, which was inflating the working balance with money that hasn't moved yet.
- Transactions: A transfer to an account you've deleted shows the account name again instead of a blank payee.
- Import: When a bank sync finds a transaction a CSV upload already imported, it attaches to the existing row instead of creating a second copy. Reverting a CSV import now removes both halves of a transfer.
- Import: The import dialog scrolls its contents and keeps the confirm button in view on long previews.
- Matching: A blank placeholder row can be matched to the real transaction when it arrives, including when the amount is a genuine $0.00 or the direction is reversed. When two reconciled rows block a match, the message now explains which account is blocking and offers a way forward.
- Tags: A tag that's already on a transaction can be recolored from its chip, rather than having to remove it, recolor it, and add it back.
- Tax lots: The "Import lots" button opens the import flow instead of failing with an error.
- Reconciled rows: Moving one leg of a transfer whose other leg is reconciled no longer dead-ends with a read-only error on a row that isn't reconciled.
- Security: Additional hardening from our ongoing internal review. We look at this continuously, not only when something prompts it.
- Accounts: The legacy accounts page no longer shows Plaid's test bank credentials on production.