Skip to content

System & Settings

The Event Console (System Log)

The flight recorder — reading entries, search syntax, pause and export, and what gets redacted.

The Event Console open, showing the tool-window chrome (the tricolor Syslog Console title, Pause, Copy Visible, Export and Clear controls, the Kashic Tool chip with Help, minimize, restore and close buttons, and the LIVE badge with entry count), the Severity and Category filter rows, the search bar with its syntax-help button, and a scrolling list of log rows each showing a time, severity badge, source and message.
The Event Console (Alt+Y) — the app's flight recorder; every entry is scrubbed for secrets before it's ever written here.

At a glance

The Event Console — labeled Diagnostic Event Stream in its own header — is the app's flight recorder: a running log of what happened, when, and how severe it was. A LIVE badge and a running entry count sit at the top; new entries keep arriving while the console is open, newest at the bottom, with the day it happened stamped in front of the clock time on every row.

It survives a reload or a crash — entries are mirrored to this browser's storage as they arrive, so reopening the console after refreshing the page picks up where you left off.

How to…

Open the console

Press Alt+Y, or click Log in the Command Center.

Read a row

Each row has four columns: Time (the calendar date, dimmed, beside a millisecond-precision clock), Type (the severity badge — Info, Warn, Error or Debug), Source (which part of the app logged it — SYSLOG, TJB, APP, MANIFEST and similar), and Message. A small dot after the message means there's more: ·{} means the entry carries a payload; ·🔒 means that payload was scrubbed — see What gets redacted below. Click any row to open it in the Inspector on the right — a Summary view of every field (including the entry's category and, where it has one, its stable event name), a Raw view of the whole entry as JSON, and a Copy button that puts the full record on your clipboard. With a row focused, pressing C copies that row as a single line.

In a narrow window — a phone, or the console sized down — each row puts its message on a second line under the clock, type and source, and the day headings carry the date. The Inspector then opens over the list rather than beside it; close it with ▸ to see the list again.

Filter by severity and category

Every entry carries two independent facets, each with its own pill row above the search box. Severity (All / Info / Warn / Errors / Debug) says how urgent it is — the four counts always add up to All. Category (All / API / AI / Lifecycle / UI / Data / Security / System) says which part of the system it came from — API traffic, AI generation, app lifecycle, UI actions, your Kard data, privacy and security posture, or general system housekeeping. Pick one from each row and they combine: Errors + API shows only failed API calls. The count strip always tells you what the current combination matched (8 of 23 style).

Search with a syntax

The search box takes plain text or these key:value filters — click the ? button beside the box for the same table, in the app itself:

TryDoes
severity:errorfilter by severity (type: still works as an alias)
category:apifilter by category (cat: works too)
source:appfilter by emitter
name:importfilter by an entry's stable event name (IMPORT_APPLIED, TOOL_OPENED, …)
has:payloadentries with a payload
time:>18:50at or after a time of day — on any day the buffer covers
time:>2026-08-12T18:50at or after an exact date and time
privacy modeplain-text match

Terms combine with AND, and a key: the syntax doesn't know falls back to a plain-text match — if that matches nothing, the empty state names the unknown key so a typo never reads as "there are no such events".

Pause the stream and use Clear

Click Pause to stop new rows from appearing — the LIVE badge turns amber and reads PAUSED, and the button itself starts counting what it's holding back (▶ Resume +3, for example). Nothing is lost: click Resume and every entry that arrived while you were paused flushes in at once, each one briefly highlighted so you can spot what's new. Clear is a two-step button — the first click arms it (Confirm clear?, for three seconds), the second click actually clears the console's local diagnostic buffer: the entries in this viewer and their mirror in this browser's storage, nothing else — no Kards, no settings, nothing beyond the log itself. Clearing while paused resets the buffered count too, so Resume never keeps advertising rows that no longer exist.

Export what you're looking at

Copy Visible puts the currently-visible rows on your clipboard as plain text and flashes ✓ Copied to confirm. Export opens a menu with six choices — scope (Visible, meaning whatever your filters and search currently show, or All (buffer), everything the console is holding) crossed with format (JSON, CSV, or plain-text TXT) — and downloads a file.

What gets redacted

Every entry is scrubbed the moment it's written, before it ever reaches the buffer, the on-disk mirror, the Inspector, Copy Visible or any export — so there's no path that stores the raw version first and cleans it up later. The scrubber looks for API keys, bearer tokens, JWTs, cookies, authorization headers, secret-carrying URL parameters, private-key blocks, password assignments, card numbers, email addresses, and generic high-entropy strings that look like an opaque secret, replacing each with a labeled placeholder that keeps the entry readable (an email keeps its first letter and domain ending; a card keeps its last four digits). A scrubbed row shows the 🔒 dot; opening it in the Inspector names exactly which categories fired. This is defense-in-depth, not a cryptographic guarantee — it's there so a careless log call can't durably write a secret to disk or into something you export.

Move, resize, and restore the window

The console is a standard Kashic tool window: it opens filling the workspace, and the ─ □ ✕ cluster in the top-right works exactly as it does on the other tools — □ restores it to a centered window (and becomes ⧉ to maximize again), ─ parks it in the dock with its stream and filters intact, and ✕ closes it. In the restored state, drag the title bar to move it and the bottom-right corner to resize it. Like the other tool windows it always opens maximized — it doesn't remember a custom size between opens, though minimizing to the dock keeps whatever state you were in.

Tips & tricks

Troubleshooting

Shortcuts

KeysDoes
Alt+YOpen or close the console
EscCloses the topmost open layer — export/search-help menu, then an armed Clear, then the Inspector selection, then a non-empty search, then the console itself