Skip to main content
An unnamed session earns a human-readable title on its own after the first user↔assistant exchange, so session list reads like a menu instead of a wall of opaque ids.

Quick Start

1

Just start a run — no naming needed

2

After the first assistant reply, the title appears automatically

3

Set your own name upfront to opt out


How It Works

Right after the run records usage, a post-run hook checks for the first exchange and generates a title only when one isn’t already set. The hook fires on the CLI post-run boundary of praisonai run, praisonai chat, and praisonai code — right after accumulate_session_usage(). It reuses the SDK’s generate_title_async and writes to the same metadata["title"] field that session rename writes and session list reads.

User Interaction Flow

No user action is needed — the title appears on its own after the first assistant reply. Before (first exchange only — title job hasn’t fired yet):
After (post-first-turn hook has run):
The id never changes — session resume 4f9a8c72-... still works. The title is display-only metadata.

Choose Your Path

Pick how a session gets its name.

Configuration Options

The auto-title path has no user-facing knobs — these signals govern it.

Model resolution

generate_title_async resolves the auxiliary model in this order: an explicit llm_model argument → defaults.small_model (config) → the session’s primary model → a cheap built-in default (gpt-4o-mini). The default resolves at call time, so env overrides set after import still take effect.

Best Practices

Auto-title fires after the first assistant reply. Just start a run — the name appears on the next session list.
An explicit title is never overwritten by the auto-title path. Use praisonai session start my-name or --title on session fork to lock in a name upfront.
A slow or unavailable model degrades silently to the id / agent-name fallback. The run itself never waits on or fails from title generation.
Sessions created before this fix that already have content but no title will earn one on their next run / chat / code turn.

Session

Full CLI reference for all session subcommands

Session Rename

Override an auto-generated title or set one manually

Project Sessions

Persisted usage shape and project scoping