Quick Start
1
Start in your project root
2
Continue later
3
List this project's sessions
identity: label tells you which resolver won — useful when explaining why two clones share sessions or why a fresh repo has none.Shows every session --continue could resume for this project — the project’s own sessions plus any globally-stored sessions (from chat, gateway, TUI, API, or a bare Agent(session_id=...)). Duplicates are collapsed; the freshest record wins.How It Works
find_last_session() merges the project-scoped store and the global default store so --continue resolves the most-recent session regardless of how it was created (run, chat, gateway, TUI, API, or a bare Agent(session_id=...)). Sub-agent / forked children are skipped — the last root session wins. It falls back to a child only if the project has none. Each store is scanned with a limit window (default 50).
The CLI now follows the repository, not the folder — cloning, moving, or git worktree-ing a repo keeps the same session history.
All four sources collapse to the same 8-char
sha256 short hash, so the on-disk session layout is unchanged.
What survives
Session history follows the repository, not the folder.When a repo gains a remote or its first commit, existing sessions from the previous
path-based id are copied into the new identity directory on the next run — no manual action needed.--continue / praisonai run after upgrading, sessions are copied (not moved) into the new identity-based directory automatically. No configuration, no data loss — just re-run in the same repo and prior history is there.
History restore and save wiring landed in PR #1963. If no prior session exists, a warning appears and a new session starts.
Reading the identity source programmatically:
Persisted usage shape
Every session stores ausage blob in ~/.praisonai/sessions/projects/<project_id>/<session_id>.json. Config-driven consumers and scripts can read this directly.
The flat
total_tokens and cost fields at the session root are mirrors kept for backwards compatibility with any code reading the old schema.
SDK helpers (praisonaiagents 1.6.85+):
Configuration Options
Best Practices
Run from the project root
Run from the project root
Start
praisonai run from the repo root so git detection stays consistent — subdirectories still resolve to the same project.Use --fork for risky experiments
Use --fork for risky experiments
Try alternatives without altering the main thread:
praisonai run --fork --session abc123 "try Redis instead".Use --no-save for throwaway prompts
Use --no-save for throwaway prompts
Quick questions or PII-sensitive input:
praisonai run --no-save "How do I hash passwords?".Clean up with session list --all
Clean up with session list --all
Review and delete stale sessions across projects periodically.
Clones and moves keep their history
Clones and moves keep their history
Two clones of the same repo — for example, one on your laptop and one on a build box — automatically share session history because the id comes from the git remote. Renaming or moving a checkout does not change the id either.
Related
Run Command
Complete
praisonai run with session flags and usage footerSession Management
Session commands, new table columns, and resume panel
Cost Tracking
Per-session persistence,
/cost command, and pricing table
