---
url: https://lettuceai.app/docs/usage
title: "Usage — LettuceAI"
description: "Per-request token and cost tracking, charts, CSV export, and app active time in LettuceAI."
---

Menu 

# Usage

LettuceAI records a usage entry every time it talks to a model provider. The Usage page turns those entries into charts, totals, and a request-by-request activity log so you can see where your tokens and dollars go.

Usage data is stored locally on your device. Nothing is uploaded.

## What gets logged

Each provider request produces a record with the fields the app needs to attribute it later:

-   Timestamp, session, character, model, and provider.
-   Operation type (chat, regenerate, continue, summary, memory manager, image generation, AI creator, reply helper, group chat message, group chat regenerate, group chat continue, group chat decision maker).
-   Finish reason (stop, length, content filter, tool calls, aborted, error, other).
-   Token counts: prompt, completion, total, cached prompt, cache write, reasoning, image, and any web search requests reported by the provider.
-   Token breakdown contributed by the app itself: memory embedding tokens and summary tokens.
-   Calculated cost when the provider exposes pricing.
-   Success flag and error message when a request fails.

## The dashboard

Open **Settings, Usage** to see the dashboard. From the top of the page you can:

-   Pick a date preset: today, this week, this month, all time, or a custom range.
-   Filter by model, character, or operation type.
-   Refresh to pull the latest records.
-   Export the current filtered view to CSV.

Below the controls, an area chart plots tokens (or cost) per day for the selected range. Summary cards show totals and per-provider, per-model, and per-character breakdowns.

## Activity log and request detail

The Activity view lists individual requests with timestamp, operation type, model, token totals, and cost. Tap a row to open the request detail sheet, which shows:

-   The full token breakdown, including cached and cache-write tokens, reasoning, and image tokens when present.
-   The cost breakdown the app calculated for that request.
-   The finish reason and any error message.
-   Session, character, and model metadata.

## How cost is calculated

LettuceAI prefers cost information that the provider returns with the response. When the provider does not return a number, the app calculates one locally by combining the recorded token counts with per-model pricing from the on-device pricing cache.

The cost breakdown attributed to a request can include a regular prompt component, cached prompt read, cache write, completion, reasoning, and any web search requests. When the provider reports an authoritative total, that value is used as the request total instead of the computed sum.

If a model is missing from the pricing cache, cost will show as zero or unavailable for that request. Token counts are still recorded.

## CSV export

The Export button on the Usage page writes a CSV file containing the currently filtered request records. The file name uses the active date preset and today's date, for example `usage-week-2025-11-04.csv`. The app prompts you for a save location and reports the final path when the file is written.

## App active time

Separate from per-request tracking, LettuceAI also records how long the app window has been focused. The tracker starts on launch, resumes when the app regains focus, and periodically flushes the accumulated milliseconds to local settings storage.

Switch the Usage page to the **App Time** view to see a daily area chart and the total active duration for the selected range. This is purely a local counter, useful for personal accountability. It is never reported anywhere.

## Filtering and search

The Activity view supports a text search that matches against character name, model name, provider, and operation type, plus dedicated filters for operation type. Combine the date preset, search box, and operation filter to drill down to a specific slice of history before exporting.

[

PreviousSecurity

](/docs/security)[

NextBackup & Restore

](/docs/backup-restore)
