WyzBooks WyzBooks v26.4.140658

Feature List

A comprehensive list of every feature in WyzBooks, organized by category.

1. Double-Entry Bookkeeping

  • Five account types: Asset, Liability, Equity, Income, Expense
  • Seven account subtypes: bank, accounts receivable, accounts payable, credit card, fixed asset, non-posting, COGS
  • Default chart of accounts with 19 seed accounts numbered 1000-6800
  • Every transaction is a balanced journal entry (debits = credits)
  • Account activation/deactivation -- inactive accounts hidden from dropdowns, data preserved
  • Account number and name fields with sortable list
  • Chart of Accounts view with Show All Dates, Hide Zero Balances, Show Inactive controls
  • Real-time account balance computation from journal entries
  • Date-filtered balances for any account across any date range
  • Drag-and-drop account reordering in Chart of Accounts
  • Click any account name or balance in the Chart of Accounts to drill into its register
  • Account list export to CSV or Excel from the Chart of Accounts toolbar
  • Account deletion warning shows the number of journal entries referencing the account before confirming
  • Per-account scroll position override (Today/Last via segmented [T|L] pill on each Chart of Accounts row)
  • Per-account date range override (compact dropdown on each Chart of Accounts row, falls back to global register default)

2. Professional Invoicing

  • Multiple line items per invoice with description, quantity, rate, and income account
  • Five invoice statuses with color-coded badges: Draft, Sent, Printed, Paid, Overdue
  • Payment terms: Due on Receipt, Net 7, Net 15, Net 30, Net 60, and custom terms
  • Terms auto-calculate due date from invoice date
  • Items catalog with name, description, default rate, and income account
  • Default invoice item pre-fills new line items automatically
  • Invoice item dropdown filters to items used in the last 12 months
  • Print invoice to PDF with company logo
  • Preview PDF and Save PDF buttons in invoice editor (PDF generated via Electron printToPDF)
  • Email invoice with PDF attachment via Apple Mail, auto-status change to Sent, greeting personalization via Dear field, comma-separated multiple recipients
  • Invoice print/PDF redesign: Bill To reordered (Company → Address → Attn), removed phone/website/Subtotal/Total/AmtPaid, kept Balance Due in green
  • Per-cell row pods with subtle zebra stripes in invoice line items
  • Description field as auto-expanding textarea (single line when unfocused, expands on focus)
  • FIFO payment matching: payments applied to oldest invoices per customer automatically
  • Catch-up tolerance: $1 per invoice for rounding and discount differences
  • Partial payment support with running balance tracking
  • Invoice search by number, customer, date, status, total, balance, memo
  • Customer filter and date range filter on invoice list
  • Sortable column headers on invoice list with Reset Sort button when sort differs from default
  • Configurable default sort field and direction
  • Click status badge in the list to cycle Draft → Printed → Sent → Draft without opening the invoice
  • Right-click context menu: Edit, Duplicate, Delete, Receive Payment (for unpaid invoices)
  • Invoice start number configurable via INI ([invoices] start-number, default 1000)
  • Active customer filter: show only customers with paid invoices in last 12 months
  • Duplicate invoice detection by number and by date + customer + approximate total

3. QuickBooks Migration

  • IIF import maps all 16 QuickBooks account types
  • Creates accounts, contacts, items, payment terms, and invoices with self-payments
  • IIF transaction data (TRNS/SPL records) auto-creates invoices and self-payment records for cash sales
  • CSV import auto-detects four formats: trial balance, transaction list, transaction detail, aging
  • Running-sum grouping: rows grouped into balanced transactions by cumulative sum
  • AR debit pre-scan captures net invoice amounts from raw rows before grouping
  • Sales receipt detection: auto-creates both invoice and self-payment for cash sales
  • Voided invoice detection: reversing entries create offsetting payment records
  • Dual-file enrichment (CSV-B): enriches invoice lines with Item, Qty, Sales Price, Due Date, Terms
  • Discount line handling alongside regular credit lines
  • Customer name recovery: matches rows without names to existing invoices by number
  • 4-step guided import wizard with confirmation: Reset Data (shows current counts), IIF, CSV Transaction Detail, CSV Item Detail (enrichment)
  • Each step has file selection, preview with row count, header tags, sample table, confirm button, and inline import log with Copy button
  • Import log displayed on completion with Copy Log button
  • Timestamped import logs to ~/.wyzbooks/import-{timestamp}.log
  • Full CLI automated import pipeline (--reset --iif --csv --csvb chain) for scripted migrations

4. Banking & Reconciliation

  • Bank Register: checkbook-style view for bank and credit card accounts
  • Credit Card Register adapts labels: Charge/Payment/Balance Due
  • Account selector dropdown for switching between bank/CC accounts
  • Toolbar two-row layout -- Row 1 (actions + filters): + New, account picker, Reconcile, 📄Clear, Import, Export, Hide Reconciled, Show Cleared, Show Un-Cleared. Row 2 (search + date + scroll): search, date preset, dateFrom, to, dateTo, Clear (date), Today (action), Last (action), Today/Last segmented toggle
  • Three independent visibility checkboxes (Hide Reconciled / Show Cleared / Show Un-Cleared) all default on, all persisted to prefs (bankRegHideReconciled, bankRegShowCleared, bankRegShowUncleared)
  • Two-row entry layout: main row (Date, Description, Deposit/Payment, Withdrawal/Charge, Balance, R, Actions) + detail row (Ref · Contra Account · Memo, hidden when all empty)
  • Running balance calculation across all transactions
  • Negative balance coloring on running balance (red for negative on bank, red for positive on CC -- indicates owed)
  • Sticky tfoot Balance row with merged Cleared/Uncleared stats (counts and amounts) and + Add Transaction text link
  • Summary bars on all register and list pages: Bank/CC Register, Account Register, Invoices, Payments, Journal Entries, Reconcile, Customer List
  • Add Transaction form: Payee, Category (autocomplete), Amount, Date, Type, Ref, Memo
  • Tab order optimized: Payee, Amount, Memo, Save, Cancel
  • Top-of-table and bottom-of-table add forms
  • Per-cell click-to-edit with all fields hot at once (no separate "edit mode" toggle)
  • Inline edit Type dropdown (Expense/Deposit/Transfer) with auto-generated XFR- ref on transfer
  • Payee autocomplete from last 12 months of transaction history
  • Inline auto-completion on payee/category fields (URL-bar pattern -- see UI section)
  • Payee-based pre-fill: auto-fills amount and category from most recent matching transaction
  • Reconciled-click toast feedback when a row vanishes due to Hide Reconciled filter
  • Duplicate transaction via copy button or right-click context menu
  • Context menu: Edit, Duplicate, Delete
  • Today marker line spanning the date column showing where today falls in the chronological sort
  • Today and Last scroll buttons with per-account default scroll position
  • Sticky table headers pinned while scrolling
  • Date range presets: This Month, Last Month, This Quarter, Last Quarter, This YTD, This Year, This & Next Year, Last Year, Last 12, All
  • Custom date range with From/To date pickers
  • Register search: date, payee, reference, memo, amounts, balance
  • Single Export button on Toolbar Row 1 with popup CSV/Excel format picker (replaces the previous separate buttons)
  • Bank statement CSV import with three-pass auto-match: Pass 1 same-day exact, Pass 2 ±14 days with closest-date and ref tie-breakers, Pass 3 unique-amount fallback (skips already-reconciled candidates)
  • Sign convention: positive = money INTO the account (deposit on bank, payment on CC); negative = money OUT (withdrawal on bank, charge on CC). Same rule for both account types.
  • Import modal: matched entries (collapsed), new entries (checkboxes), Add Entries button
  • Smart category assignment from payee history on imported rows
  • 📄Clear button (CSV match-and-clear pre-reconcile pass) on Toolbar Row 1: matches a bank statement CSV against existing register entries and bulk-marks them as cleared (✓ blue), so they're auto-pre-checked when you next open Reconcile
  • CSV Clear three result buckets in the preview modal: Will be marked cleared, Already cleared (no change), Add as new cleared transactions
  • CSV Clear Apply button shows action counts (e.g. "Apply (12 cleared, 3 added)") and is undoable as a single bulk operation via ⌘Z
  • CSV Clear pool includes already-cleared and reconciled lines so they categorize as "already cleared" instead of falling through to duplicate-add
  • Inter-account transfers between bank/CC accounts
  • Reconciliation: select account, enter statement balance/date, check cleared transactions
  • Difference indicator: Statement Balance - Previously Reconciled - Cleared Total
  • Finish Reconcile when difference reaches $0.00
  • Add transaction during reconciliation without leaving the page
  • Reconcile CSV import: auto-check matching transactions from bank statement (transient -- use 📄Clear in the Bank Register for a persistent pre-reconcile pass)
  • Reconciliation status permanently marked, excluded from future sessions
  • QuickBooks Clr column (√ = reconciled) preserved on import, so previously reconciled transactions carry over automatically
  • Three-state reconciliation: empty → ✓ cleared (blue) → ✓✓ reconciled (green), clickable in registers
  • Select Current: check transactions up to statement date
  • Click+drag multi-select/deselect on Reconcile page
  • Reconcile button in Bank/CC Register toolbar
  • Date input shortcuts: T (today), Y (yesterday), = (next day), - (prev day)
  • Sidebar Account Balances panel: bank/CC balances in the left sidebar with configurable position (top/middle/bottom), enable/disable toggle in Settings General, click any row to navigate directly to that account's register

5. Financial Reports

  • 17 reports across four categories
  • Company & Financial: Profit & Loss, P&L Detail, Balance Sheet, Balance Sheet Detail, Trial Balance, Cash Flows
  • Customers & Receivables: A/R Aging, Open Invoices, Customer Balance Summary, Customer Balance Detail
  • Vendors & Payables: A/P Aging, Vendor Balance Summary, Vendor Balance Detail
  • Accountant & Audit: General Ledger, Journal, Transaction List by Date, Transaction Detail by Account
  • Trial Balance with imbalance validation -- a mismatch is flagged as a data integrity issue
  • Statement of Cash Flows uses the indirect method showing Operating, Investing, and Financing activities
  • Date range filtering on all reports
  • Drill-down navigation: click an account row in P&L or Balance Sheet to open its Account Register at the same date range
  • CSV and Excel export for every report
  • QuickBooks report comparison: side-by-side with match/mismatch/QB-only/WB-only breakdown
  • QB comparison handles subaccount paths (e.g. "Telephone:Cellular") and accounts exported without numbers
  • Copy Results button on QB comparison detail panel (tab-separated for spreadsheet paste)
  • Comparison results auto-saved as JSON to ~/.wyzbooks/compare-{key}-{timestamp}.json
  • Headless QB comparison via CLI (--compare flag, no window) and REST API (POST /reports/:key/compare)

6. Dashboard & Quick Actions

  • Quick action buttons: Record Payment (popup form), Add Invoice, Record CC Charge (popup form), Edit Invoice, Log Hours (popup form), Record Bank Transaction (popup form), Print Invoice, Reconcile, Transfer
  • All four Dashboard quick action popups (Record Customer Payment, Record CC Spend, Record Bank Transaction, Log Hours) accept Enter from any field to submit
  • Inline auto-completion on Payee and Category fields in all popup forms (URL-bar pattern -- see UI section)
  • Log Hours: modal form to add consulting time to open invoices -- invoice picker, YYYYMMDD description prefill, hours/rate with last-used default, live total, confirmation with Log More/Done
  • Active Customers card: count with 12-month and YTD revenue totals
  • Total Due card aggregates ALL Sent + Printed + Draft + Overdue invoices (Overdue intentionally included so the count and total match the Open Invoices list)
  • Four individual stat boxes: Overdue, Sent, Printed, Draft (count + amount each)
  • Stat box hover popups: top invoices listed by amount due (Inv #, Customer, Date, Amount), 750ms delay before showing
  • Bank & Credit Card Balances: clickable to open register
  • Open Invoices table sorted by balance due descending; row click navigates to invoice editor
  • Income & Expenses monthly bar chart with fiscal year navigation; click chart to open the P&L report
  • P/L Summary cards: This Year YTD, Last Year, Year-over-Year change
  • Fiscal year detail table (collapsible) for all years with data
  • Drag-to-reorder dashboard rows with blue indicator line showing drop target
  • Reset Layout button visible only when row order has been customized
  • Themed card header bars on all dashboard cards with auto light/dark text contrast
  • Dashboard tab always opens in left-most position
  • Business Info card: company name, address, phone, email, website, logo
  • Dashboard Theme preset dropdown in the page header (per-area theme picker)
  • Global Theme preset dropdown in the page header (applies to entire app)
  • Theme switching confirm dialog when leaving a custom theme: save as new preset / overwrite existing / discard
  • Right-click context menu: Open in New Tab (or Open in Same Tab when Open Links in New Tabs is active)
  • Light/Dark/System theme toggle in header
  • Cloud Sync status badge in the header showing connection state -- Cloud (green/connected), Connecting (yellow), Reconnecting (yellow), Cloud offline (gray)
  • Cloud Sync status popup with server hostname, sync version, offline queue count, divergence state, and Check Sync / Settings / Disconnect / Close buttons
  • Cloud Sync divergence warning banner above dashboard rows with Push / Pull / Dismiss buttons
  • Cloud Messaging compose bar with Send button and sent/failed indicator (when Cloud Sync messaging is enabled)
  • Received message cards above Dashboard rows with sender name, timestamp, message text, and dismiss × button
  • Sidebar message badge ("● N messages") visible on all pages, flashes yellow for 3 seconds on new arrival
  • macOS dock icon badge with unread message count, configurable via Settings or [cloud-sync] dock-badge INI key

7. Dark Mode & Tabs

  • Three appearance modes: Light, Dark, System (follows macOS)
  • Tabbed interface (optional): multiple pages open at once
  • Per-tab navigation history with back/forward
  • Tab persistence: restore tabs and tab history on relaunch
  • Cmd+T new tab, Cmd+W close tab, Shift+Cmd+]/[ switch tabs
  • Tab deduplication: left-clicking a page already open in another tab switches to it instead of creating a duplicate
  • Right-click context menus offer both Open in Same Tab and Open in New Tab when tabs are enabled
  • Tab bar scroll arrows (◀▶) appear when tabs overflow the window width
  • Drag-and-drop tab reordering
  • Light/Dark/System theme toggle and Cloud Sync status badge appear on every page header
  • Sidebar menu drag-and-drop reordering with persistent order
  • Inline auto-completion on every autocomplete field across the app (URL-bar pattern): as you type, the moment what you've typed is a unique prefix of one option, the rest of the option is appended into the field as highlighted text. Press Tab to accept (which fires the parent's onSelect side effects, e.g. payee → category pre-fill); keep typing to overwrite; Backspace to remove the highlight; Escape to revert to what you typed
  • Clearable × button on every search input across the app (Contacts, Items, Invoices, Payments, Account Register, Bank Register, Journal Entries, Help)
  • Date input shortcuts in any date field: T for today, Y for yesterday, = to advance one day, - to go back one day
  • Math expressions in amount fields: type 100+50 and press Enter to get 150 (addition and subtraction)
  • Phone number auto-format: type 10 digits and it formats to (555) 123-4567 automatically (international numbers pass through)
  • Back button (←) in PageHeader when tabs are disabled, with Cmd+[ keyboard shortcut
  • Undo (⌘Z): 20-deep delete undo stack -- restores the most recently deleted record with confirmation dialog

8. Your Data, Your Machine

  • All data stored locally in a portable .wyzbooks file (JSON-based)
  • No cloud account, no internet, no sign-up, no login required
  • Auto-reopen last file on launch (window-state.json lastFilePath persistence)
  • File menu: ⌘O Open, ⌘S Save, ⇧⌘S Save As (switches to new file), File → Export (copy only, no file switch), File → Close
  • Window title shows filename (or "Untitled") with "(Shared)" indicator when multi-user mode is active
  • File status popup from the sidebar footer: full path, size, last modified, Multi-User/Lock/Synced status, file version, last saved by hostname, checksum
  • Drag-and-drop file open: double-click any .wyzbooks file in Finder to open it
  • Legacy format support: .ledger and .wyzaerd extensions accepted
  • macOS-native: traffic lights, universal binary (Intel + Apple Silicon)
  • Zero runtime internet dependencies: React, Babel, Tailwind bundled locally

9. Customizable Themes

  • Five independent theme areas: Global UI, Sidebar Navigation, Help Pages, Dashboard Cards, Compact View
  • Quick Theme picker applies a coordinated preset across all four color systems at once (shows "Mixed" when areas use different presets)
  • Global Theme: 10 keys with separate Light and Dark mode customization
  • Sidebar Navigation Theme: 7 keys with live mini-preview
  • Help Theme: 11 block types customizable
  • Dashboard Theme: 14 keys including chart colors and badge styles
  • Compact View: 6 padding keys for denser display
  • Built-in presets per theme area
  • Swatch grid color picker: 8×10 grid of all Tailwind colors
  • Per-element font size, weight, and color customization with visual preview
  • Edit raw Tailwind classes directly via an "Edit custom classes" toggle
  • Save as named preset for any theme area; user presets show ★ in dropdown
  • All config stored in ~/.wyzbooks/wyzbooks.ini (text-based, git-friendly)

10. REST API & Command Line

  • Express 4.x HTTP server on localhost:3141
  • 18 route groups: Accounts, Contacts, Invoices, Payments, Items, Journals, Bank Transactions, Reports, Import, Reconcile, Bills, Terms, Audit, Data, Console, Sync, Messages, System
  • OpenAPI 3.0 spec with interactive Swagger UI documentation
  • API key authentication via X-API-Key header
  • POST /reports/:key/compare endpoint for QB comparison via API (accepts CSV body, returns matched/mismatched/qbOnly/wbOnly arrays)
  • Sync endpoints: GET /sync/checksum, GET/POST /sync/prefs, GET /sync/changes, GET /sync/stream (SSE), POST /sync/push
  • Messaging endpoints: POST /messages/send, GET /messages/recent, DELETE /messages/clear
  • Data export endpoint GET /api/v1/data/export/file for downloading the .wyzbooks file via API
  • API mutations auto-increment the sync version and broadcast via SSE when Cloud Sync is active
  • SSE stream for real-time sync between clients
  • Install wyzbooks CLI command from Settings
  • CLI: --reset (full reset), --reset-data (data only), --reset-prefs (prefs only) for factory reset
  • CLI: --iif, --csv, --csvb for scripted import pipeline
  • CLI: --dump-invoice, --dump-ar for diagnostic output
  • CLI: --compare for headless report comparison (no window)
  • CLI: --offline, --push-first, --pull-first for cloud sync control
  • CLI: --help for usage reference
  • Arguments combinable in any order

11. Audit Trail

  • Every data change logged to ~/.wyzbooks/audit.log with timestamps and details
  • Import operations logged separately to audit-import.log
  • Cloud sync operations logged with CSYNC prefix
  • Log rotation at 1 MB
  • Enabled by default, toggleable in Settings

12. Inter-Account Transfers

  • Transfer Funds page: pick From and To accounts, enter amount, optional date / ref / memo
  • Auto-generated XFR- reference prefix with unique code when ref left blank
  • Auto-generated memo "Transfer: Source Name → Destination Name" when memo left blank
  • Recent transfers list shows last 20 transfers with date, description, reference, amount
  • Inline editing on click: expand the recent transfer row, edit fields, Save/Cancel
  • Delete with confirmation dialog and ⌘Z immediate undo (within 20-deep undo stack)
  • Transfer journal entries also visible in BankRegister (Type column "transfer") and AccountRegister (drill-to-source navigates here)

13. Settings Transfer

  • Export all settings to a single JSON file
  • Includes themes, business profile, logo, sidebar order, account visibility, preferences, INI sections, custom presets
  • Excludes Cloud Sync API key for safety
  • Import settings with automatic page reload
  • Pairs with migration workflow for complete Mac-to-Mac transfer

14. Multi-User & Cloud Sync

  • Multi-User Mode (NAS): file locking and live sync for shared .wyzbooks files
  • Atomic directory-based file locking (NAS-safe)
  • 1.5-second polling for change detection with SHA-256 checksum validation
  • Three-way merge algorithm: per-record merge across 9 collections
  • Sync highlights: green for new, yellow for modified, auto-fade after 2 seconds
  • Cloud Sync: real-time sync via private API server over the internet
  • Connect modes: Normal (merge), Push First (local is truth), Pull First (server is truth)
  • Continue Offline button on the Connecting overlay to cancel and work in local-only mode
  • Delta sync: only changed records pushed on each save
  • SSE stream for instant incoming updates with 30-second heartbeat
  • Polling fallback and heartbeat detection for missed events
  • Offline queue: changes queued while disconnected, replayed on reconnect (holds up to 1,000 changes; oldest dropped on overflow)
  • Conflict resolution modal with 60-second auto-merge timeout
  • Exponential backoff reconnection (2s-30s, 2-minute deadline)
  • Auto-reconnect on app launch
  • Cloud Messaging: send text messages between connected instances
  • "Show my own sent messages" echo toggle (messaging-echo pref)
  • Message badge in sidebar footer on all pages with yellow flash on new message
  • macOS dock icon badge with unread message count, configurable via Settings or INI
  • Separate dock badge toggle for sync divergence (dock-badge-div)
  • Divergence detection: Check Sync compares checksums with field-level diffs by collection (modified / local-only / server-only records)
  • Auto-check divergence every 5 minutes when connected
  • _rev field stripped before comparison so only actual data differences are detected
  • Manual Push/Pull with separate Data and Settings checkboxes (Transfer row in Settings → Advanced)
  • Settings sync: preferences auto-push in real-time; tabs sync via manual push/pull only
  • Sidebar status indicators: gray (standalone), green (shared), blue/yellow (cloud sync)

15. Mobile App (PWA)

  • Progressive Web App at wyzbooks.com/app, any phone or tablet
  • Add to Home Screen for app-like experience
  • Three-tab navigation: Dashboard, Invoices, Tools
  • Tools tab with three action cards: CC Charge, Payment, Log Hours
  • Dashboard: colored bank/CC balances with section totals
  • Dashboard: Total Due card showing combined open balance (Sent + Printed + Draft + Overdue), tap to open the filtered invoice list
  • Dashboard: invoice stat boxes (Overdue, Sent, Printed, Draft) in a 2×2 grid
  • Tap any stat box to navigate to the Invoices tab filtered to that status, with an active filter pill (× to clear)
  • Dashboard Open Invoices list: shows ALL open invoices sorted by balance due (number, customer, amount, status badge), Total Outstanding at the bottom
  • Credit Card Charge page with payee autocomplete and pre-fill
  • Invoices page: browse all invoices with status badges, tap for detail
  • Invoice list header shows the active filter on the left and the total dollar amount of the visible invoices on the right (balance due for unpaid filters, gross total for the Paid filter)
  • Open filter correctly includes Overdue invoices so its count and total match the Dashboard's Total Due card
  • Header search icon: searches across accounts, invoices, and transactions with grouped results, tap any result to navigate to its detail
  • Log Hours: description pre-filled with today's date (YYYYMMDD)
  • Log Hours: rate pre-filled from history
  • Record Payment against open invoices
  • Real-time SSE sync: desktop and mobile changes propagate instantly
  • API key authentication stored in browser localStorage
  • Login screen with iOS autofill fix (type=text, autocomplete=off, auto-focus API key, enlarged logo)
  • Persistent search field at top of sidebar
  • Searches journals (payee, reference, note, account names), invoices (number, customer, status, line descriptions), and accounts (name, number, type)
  • Minimum 2 characters to activate
  • Results in overlay dropdown grouped by type: Accounts, Invoices, Journal Entries
  • Click journal result: navigates and scrolls to entry with blue highlight
  • Click invoice result: opens invoice editor
  • Click account result: opens register
  • "Show all N results" link when journal matches exceed 20
  • Escape or click outside to close; red X button to clear

17. Bank Statement Import & Clear

  • Import button in Bank Register and Credit Card Register toolbar (creates new transactions)
  • Companion 📄Clear button on the same toolbar (matches existing register entries and bulk-marks them as cleared -- a fast pre-reconcile pass)
  • Both buttons share the same parser and matcher; Import primarily CREATES new transactions, Clear primarily MATCHES existing ones
  • Supports header-based CSVs with flexible column aliases (Date, Description, Amount, Debit/Credit, Ref)
  • Supports headerless CSVs with auto-detection of amount and description columns
  • Three-pass matcher: Pass 1 same-day strict, Pass 2 ±14 days with closest-date and ref-number tie-breakers, Pass 3 unique-amount fallback skipping already-reconciled candidates
  • Magnitude-only (sign-blind) matching so it works regardless of the bank's sign convention
  • Sign convention for the Add-as-new path: positive = money INTO the account (deposit/payment), negative = money OUT (withdrawal/charge)
  • Import modal: matched entries (collapsed), new entries (checkboxes, all checked by default)
  • CSV Clear preview modal: three result buckets (Will be marked cleared / Already cleared, no change / Add as new cleared transactions) with action counts on the Apply button
  • CSV Clear bulk operation is undoable as a single ⌘Z step
  • Smart contra account from payee history, fallback to default expense/income account
  • CC-aware absolute amount comparison
  • Audit logged with count and account name

18. Find in Page

  • ⌘F opens a floating search bar at the top-right of the window
  • Live text search highlights all matches within the current view
  • ⌘G / Enter to jump to next match, ⇧⌘G / Shift+Enter for previous
  • ▲/▼ buttons for next/previous navigation
  • Escape closes the find bar from anywhere (input focused or not)
  • × button to close and clear highlights
  • When Tabs and Open Links In Tabs are both enabled, clicking any cross-page link automatically opens in a new tab
  • Same-view navigation (e.g., editing an invoice from the invoice list) stays in the current tab
  • Right-click context menus flip to "Open in Same Tab" for in-place navigation
  • Enabled by default when Tabs are on; toggle in Settings → General → Tabs card
  • Also configurable via [general] open-links-in-tabs in wyzbooks.ini

20. Switch to New Tabs

  • Controls whether new tabs are automatically selected when they open
  • When enabled (default), opening a new tab switches to it immediately
  • When disabled, new tabs open in the background -- you stay on your current tab
  • Toggle in Settings → General → Tabs card, or via [general] switch-to-new-tabs in wyzbooks.ini

21. Help & Documentation

  • Built-in help system with topics loaded from JSON files
  • Full-text search across all help topics (loads all on first keystroke)
  • Sidebar topic list with active highlighting and search filtering
  • Previous/Next navigation buttons on every topic
  • Context-sensitive help icons on every major page
  • Help icon tooltips with brief page description
  • Customizable help page theme via INI with built-in presets
  • JSON-driven renderer: headings, text, lists, tip boxes, code blocks, grids, inline links
  • Cross-topic links and app navigation links within help content
  • Online documentation at wyzbooks.com/docs mirrors all help content with screenshots
  • Documentation build pipeline: demo data, Playwright screenshots, Eleventy static site

22. Customers & Vendors

  • Combined Contacts page with toggle for Customers / Vendors view
  • Sortable columns: Name, Email, Phone, YTD Revenue (customers) / YTD Spend (vendors), Outstanding balance
  • Active customer filter: show only customers with paid invoices in the last 12 months
  • Search across name, contact, email, phone, and notes
  • Editable contact form: Short Name, Company, Contact (person name), Dear (email greeting), Email, Phone (auto-formatted), Address, Notes
  • Phone numbers auto-format: 10 digits → (555) 123-4567
  • Customer detail card on the Dashboard shows YTD revenue and outstanding total
  • Hide Vendors entirely via the Hide A/P setting in Settings → General
  • Export contact list to CSV or Excel
  • Summary bar with count + YTD revenue + total outstanding
  • Inline edit on click; row click navigates to the contact's edit form
  • Delete with ⌘Z undo (20-deep stack)

23. Items Catalog

  • Items list with name, type, description, default rate, income account, active toggle
  • Item create/edit form pre-fills new invoice line items automatically
  • Default Item setting in Settings → Invoice Defaults (or [invoices] default-item INI key)
  • Invoice line item dropdown filters to items used in the last 12 months by default
  • Items imported from QuickBooks IIF preserve descriptions and rates
  • Items can be deactivated to hide from invoice line dropdowns; data preserved
  • Sortable columns and search across name, type, description
  • Export item list to CSV or Excel
  • Delete with reference count warning if used by invoice lines
  • Summary bar with active count and average rate

24. Manual Journal Entries

  • Journal Entries page lists all journal entries with date, ref, memo, debit, credit, line count
  • Manual JE form: date, reference, memo (description), notes, multi-line splits
  • Each line: account, debit OR credit, optional per-line notes
  • Balancing rule enforced: total debits must equal total credits before save
  • Add and remove line buttons; minimum 2 lines
  • Account autocomplete on each line with inline auto-completion
  • + Manual Journal Entry button on the Account Register pre-fills line 1 with the current account
  • Journal Entries page sub handler new:{accountId} opens the form with line 1 pre-populated
  • Sortable columns: Date, Ref, Memo, Total
  • Search across date, ref, memo, line account names
  • Date range presets and From/To pickers
  • Sticky table headers + sticky tfoot summary bar showing total DR / CR for visible rows
  • Export to CSV or Excel
  • Delete with ⌘Z undo (20-deep stack)
  • Auto-scroll to highlighted entry from drill-to-source navigation

25. Account Register (Audit View)

  • Read-only audit view for any non-bank/non-credit-card account (matches the QBO/QBD/Xero/Wave/Sage convention)
  • 8-column layout: Date, Type, Num, Name, Description, Debit, Credit, Balance
  • Drill-to-source on row click: invoices → invoice editor, payments → payment editor, manual journal entries → JE viewer scrolled and highlighted, transfers → transfer list
  • Type filter pills: All / Invoices / Payments / Transfers / Manual
  • Sticky thead + sticky tfoot showing "Net for period: ±$X" and current Balance
  • + Manual Journal Entry button pre-fills the JE form with the current account in line 1
  • Search across date, type, num, name, description, amounts
  • Date range presets and From/To pickers
  • Per-account scroll position and date range overrides honored
  • No inline editing -- by design. Edits happen in the source document (invoice editor, payment editor, JE viewer) so multi-line splits and journal/invoice links can't be accidentally broken.
  • Source detection from journal entry ref + memo prefixes (INV-, PMT-, XFR-, TRANSFER:) via shared buildSourceIndex / getJournalSource helpers

26. Settings & Preferences

  • Seven Settings tabs: General, Advanced, Appearance, Profile, Transfer, Reset, Uninstall
  • General tab: Tabs (enable + restore + open links + switch to new), Compact View, Sidebar Balances (position + toggle), Hide A/P, Invoice Defaults (item, terms, default sort, date range, start number), Register Defaults (date range, summary font), CLI Tool installer (PATH directory picker, Install/Uninstall)
  • Advanced tab: REST API server (enable + port + key + Install CLI tool), Multi-User Mode toggle, Cloud Sync (server URL + key + Connect/Disconnect + status), Cloud Messaging (enable + echo own messages), Audit Log toggle, Reload INI button
  • Appearance tab: Quick Theme preset picker (applies coordinated preset across all 4 color systems), 5 collapsible theme cards (Global / Sidebar Nav / Help / Dashboard / Compact View), each with built-in presets, swatch grid color picker, edit-raw-classes toggle, font size/weight pickers, save-as-named-preset
  • Profile tab: Business name, address, phone, email, website, timezone (IANA), default invoice memo, business logo upload
  • Transfer tab: Settings export to JSON file, Settings import from JSON file with auto-reload, Transfer row in Cloud Sync section for Manual Push/Pull with Data and Settings checkboxes
  • Reset tab: Reset Data, Reset Prefs, Reset Themes -- each opt-in checkbox (default OFF to prevent accidental data loss), confirmation required
  • Uninstall tab: lists 14 file/directory locations across ~/Library/Application Support/, ~/.wyzbooks/, /Applications/, with checkbox per location and final confirmation
  • Real-time validation on all form inputs
  • All settings persist to ~/Library/Application Support/WyzBooks/data/wyzbooks-prefs-v1 plus ~/.wyzbooks/wyzbooks.ini
  • INI file is text-based and git-friendly; the app reads it on startup and the Reload INI button picks up edits without restart
  • Settings export bundle includes everything: themes, business profile, logo, sidebar order, account visibility, custom presets, INI sections -- but excludes the Cloud Sync API key for safety