A clearer start for every agent.The Croli user manual: what each screen does, and how to use it.
See the product preview ↗
User manual

Runtime logs

Settings → Runtime Logs is both the log level switch and a live log viewer.

Subtitle: "View and configure application diagnostic logs. Logs are written to local files and kept in memory for live viewing."

Log level

One dropdown, six steps:

Level Notes
Off Nothing recorded
Error Errors only
Warning
Info (default)
Debug Records more, and the logs get bigger
Trace Most detailed

Changes are applied live through tracing's reload handle; no restart needed. They stay in sync across windows. A failed save reports "Failed to save log level".

Environment variables lock this section

As soon as CROLI_LOG or RUST_LOG holds a non-empty value, the dropdown and the whole Per-module overrides block below it grey out, and an amber notice appears:

Log level is controlled by the RUST_LOG / CROLI_LOG environment variable; change it there to take effect.

When both are set, CROLI_LOG wins.

Per-module overrides

Set a level for one module without touching the global one. Click Add to append a row; each row is a module name plus a level.

  • The module name is free text, with suggestions: croli_lib::acp, croli_lib::acp::delegation, croli_lib::web, croli_lib::chat_channel, croli_lib::db.
  • The format must be a Rust module path like a::b::c (letters, digits, underscores and :: only). Invalid input gets a red border and is not written into the saved config.
  • Saves on blur. The icon button on the right removes the row.

Empty by default.

A few modules carry hard-coded ceilings that neither the UI nor RUST_LOG can lift — agent_client_protocol and sqlx::query, for instance, top out at Warn. This keeps them from flooding the log.

Recent logs

Live view of recent log records.

Toolbar:

  • Pause / Live — toggles the log subscription; Live by default.
  • Refresh — re-fetches the latest 5000 records.
  • Clear — clears the screen only; it does not touch the backend buffer and does not delete files.
  • Open folder (desktop only) — reveals the log directory in the system file manager.

Filters:

  • Search box — case-insensitive match against the message and the target.
  • Level dropdown — All levels (default) / Error+ / Warning+ / Info+ / Debug+ / Trace+. This only filters what you see; it does not change which level is captured and written to the files.

On the right it reads "x / y shown". The list keeps at most 5000 rows. Each row is a timestamp, a level badge, the target and the message; rows with spans or fields can be expanded to show a spans: breadcrumb and a key-value table.

Auto-scroll only follows new records when you are already near the bottom — scrolling back through history will not be dragged away by new logs.

Log files (Web / server mode only)

The desktop does not show this section (use Open folder above there).

Download complete log files from disk to see history beyond the live buffer. Each file shows its name, its size and a Download button.

Files over 16 MiB download only their latest stretch, with the name changed to *.tail.log and the notice "File is large; downloaded the latest {size}. The full file is in the logs directory."

Where the logs live

The directory is resolved in this order:

CROLI_LOG_DIR  →  $CROLI_HOME/logs  →  $CROLI_DATA_DIR/logs  →  ~/.croli/logs
  • In-memory ring buffer — 5000 records and 4 MiB, whichever ceiling is reached first.
  • Disk — rotated daily, 30 files kept by default, adjustable with CROLI_LOG_MAX_FILES.
  • Single-file read ceiling — 16 MiB (where that truncation notice comes from).

Worth knowing

  • Clear only clears the screen in front of you. To actually free space, delete the files in the log directory, or lower CROLI_LOG_MAX_FILES.
  • Debug or Trace noticeably increases disk writes; set it back to Info once you are done digging.
  • A level change reaches every window, so two settings windows open at once will not fight over it.