> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Session

> Manage conversation sessions for multi-turn interactions

The `session` command manages conversation sessions, allowing you to save, resume, and organize multi-turn interactions.

## Quick Start

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# List all sessions
praisonai session list
```

<Frame>
  <img src="https://mintcdn.com/praisonai/2OBv0nvWLwS-3tNQ/docs/cli/session-list-conversation-sessions.gif?s=8311a62533357a6ab9a79236972c272a" alt="List conversation sessions example" width="1497" height="1104" data-path="docs/cli/session-list-conversation-sessions.gif" />
</Frame>

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Start a new session
praisonai session start my-project
```

## Commands

### Start a Session

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai session start my-project
```

**Expected Output:**

```
🆕 Starting new session: my-project

Session created successfully!
┌─────────────────────┬────────────────────────────┐
│ Property            │ Value                      │
├─────────────────────┼────────────────────────────┤
│ Session ID          │ my-project                 │
│ Created             │ 2024-12-16 15:30:00        │
│ Status              │ active                     │
│ Messages            │ 0                          │
└─────────────────────┴────────────────────────────┘

You can now run commands with this session context.
Use: praisonai "your prompt" --session my-project
```

### List Sessions

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai session list
```

**Expected Output:**

```
📋 Available Sessions:

┌────┬─────────────────┬─────────────────────┬──────────┬──────────┐
│ #  │ Session ID      │ Last Active         │ Messages │ Status   │
├────┼─────────────────┼─────────────────────┼──────────┼──────────┤
│ 1  │ my-project      │ 2024-12-16 15:45    │ 12       │ active   │
│ 2  │ research-task   │ 2024-12-16 14:20    │ 8        │ paused   │
│ 3  │ code-review     │ 2024-12-15 10:30    │ 25       │ paused   │
│ 4  │ documentation   │ 2024-12-14 09:15    │ 5        │ archived │
└────┴─────────────────┴─────────────────────┴──────────┴──────────┘

Total: 4 sessions
```

### Resume a Session

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai session resume my-project
```

**Expected Output:**

```
▶️  Resuming session: my-project

Session restored successfully!
┌─────────────────────┬────────────────────────────┐
│ Property            │ Value                      │
├─────────────────────┼────────────────────────────┤
│ Session ID          │ my-project                 │
│ Messages            │ 12                         │
│ Last Message        │ "Can you explain..."       │
│ Context Size        │ 2,456 tokens               │
└─────────────────────┴────────────────────────────┘

Session context loaded. Continue your conversation:
```

### Show Session Details

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai session show my-project
```

**Expected Output:**

```
📊 Session Details: my-project

┌─────────────────────┬────────────────────────────┐
│ Property            │ Value                      │
├─────────────────────┼────────────────────────────┤
│ Session ID          │ my-project                 │
│ Created             │ 2024-12-16 15:30:00        │
│ Last Active         │ 2024-12-16 15:45:00        │
│ Status              │ active                     │
│ Total Messages      │ 12                         │
│ User Messages       │ 6                          │
│ Agent Messages      │ 6                          │
│ Total Tokens        │ 4,523                      │
│ Storage Size        │ 45 KB                      │
└─────────────────────┴────────────────────────────┘

Recent Messages:
────────────────────────────────────────────────────
[User] Can you explain the authentication flow?
[Agent] Based on the code, the authentication...
────────────────────────────────────────────────────
[User] How do I add OAuth support?
[Agent] To add OAuth support, you would need to...
────────────────────────────────────────────────────
```

### Delete a Session

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai session delete my-project
```

**Expected Output:**

```
⚠️  Delete session 'my-project'?
This will permanently remove all conversation history.
Are you sure? (y/N): y

🗑️  Session 'my-project' deleted successfully.
```

### Help

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai session help
```

**Expected Output:**

```
Session Commands:

  praisonai session start <name>    - Start a new session
  praisonai session list            - List all sessions
  praisonai session resume <name>   - Resume a session
  praisonai session show <name>     - Show session details
  praisonai session delete <name>   - Delete a session
  praisonai session help            - Show this help

Using Sessions with Prompts:
  praisonai "prompt" --session <name>   - Run with session context
```

## Using Sessions with Prompts

### Continue a Conversation

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# First message
praisonai "What is Python?" --session learning

# Follow-up (context preserved)
praisonai "How do I install it?" --session learning

# Another follow-up
praisonai "Show me a hello world example" --session learning
```

**Expected Output (third message):**

````
📂 Session: learning (3 messages)

╭────────────────────────────────── Response ──────────────────────────────────╮
│ Based on our conversation about Python, here's a hello world example:        │
│                                                                              │
│ ```python                                                                    │
│ print("Hello, World!")                                                       │
│ ```                                                                          │
│                                                                              │
│ After installing Python as we discussed, save this to a file called         │
│ `hello.py` and run it with `python hello.py`                                │
╰──────────────────────────────────────────────────────────────────────────────╯
````

### Session with Other Features

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Session with memory
praisonai "Remember my preferences" --session project --memory

# Session with knowledge
praisonai "Search the docs" --session project --knowledge

# Session with planning
praisonai "Plan the implementation" --session project --planning
```

## Use Cases

### Project-Based Conversations

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Start project session
praisonai session start website-redesign

# Multiple conversations over time
praisonai "What's the current design?" --session website-redesign
praisonai "Suggest improvements" --session website-redesign
praisonai "Create implementation plan" --session website-redesign
```

### Learning Sessions

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Create learning session
praisonai session start learn-rust

# Progressive learning
praisonai "Explain ownership in Rust" --session learn-rust
praisonai "Show me an example" --session learn-rust
praisonai "What about borrowing?" --session learn-rust
```

### Code Review Sessions

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Start review session
praisonai session start pr-review-123

# Review conversation
praisonai "Review this PR" --session pr-review-123 --fast-context ./src
praisonai "What about security concerns?" --session pr-review-123
praisonai "Summarize the review" --session pr-review-123
```

## Auto-Save Sessions

Automatically save sessions after each agent run using the `--auto-save` flag:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Auto-save session with each interaction
praisonai "Analyze this code" --auto-save my-project

# Continue the conversation (auto-saved)
praisonai "Now refactor it" --auto-save my-project
```

### Python API

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent

from praisonaiagents.config.feature_configs import MemoryConfig

agent = Agent(
    name="Assistant",
    memory=MemoryConfig(auto_save="my-project")  # Auto-save session after each run
)

agent.start("Analyze this code")  # Session saved automatically
```

## History in Context

Load conversation history from previous sessions into the current context:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Load history from last 5 sessions
praisonai "Continue our discussion" --history 5
```

### Python API

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent

agent = Agent(
    name="Assistant",
    memory=True,
    context=True,  # Enable context management for history
)

# Agent now has context from previous sessions
agent.start("What did we discuss yesterday?")
```

## Workflow Checkpoints

Save and resume workflow execution at any step:

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import AgentFlowManager

manager = WorkflowManager()

# Execute with checkpoints (saves after each step)
result = manager.execute(
    "deploy-workflow",
    checkpoint="deploy-v1"
)

# Resume from checkpoint if interrupted
result = manager.execute(
    "deploy-workflow",
    resume="deploy-v1"
)

# List all checkpoints
checkpoints = manager.list_checkpoints()

# Delete a checkpoint
manager.delete_checkpoint("deploy-v1")
```

### Checkpoint Storage

```
.praison/
└── checkpoints/
    ├── deploy-v1.json
    └── build-v2.json
```

## Session Storage

Sessions are stored locally in `~/.praisonai/memory/{user_id}/sessions/`:

```
~/.praisonai/
└── memory/
    └── praison/
        └── sessions/
            ├── my-project.json
            ├── research-task.json
            └── code-review.json
```

### Storage Backend Options

Store sessions in different backends for production deployments:

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# List sessions with SQLite backend
praisonai session list --storage-backend sqlite --storage-path ~/.praisonai/sessions.db

# List sessions with Redis backend (for distributed systems)
praisonai session list --storage-backend redis://localhost:6379

# List sessions with file backend (default)
praisonai session list --storage-backend file --storage-path ~/.praisonai/sessions
```

| Backend       | Best For                             |
| ------------- | ------------------------------------ |
| `file`        | Development, debugging               |
| `sqlite`      | Production, concurrent access        |
| `redis://url` | Distributed systems, shared sessions |

See [Storage Backends](/docs/storage/backends) for more details.

## Best Practices

<Tip>
  Use descriptive session names that reflect the project or task for easy identification.
</Tip>

<Warning>
  Long sessions accumulate tokens. Consider starting fresh sessions for unrelated topics.
</Warning>

<CardGroup cols={2}>
  <Card title="Naming">
    Use descriptive names like `project-auth-feature`
  </Card>

  <Card title="Organization">
    Create separate sessions for different projects
  </Card>

  <Card title="Cleanup">
    Delete old sessions to free up storage
  </Card>

  <Card title="Context">
    Start new sessions when changing topics significantly
  </Card>
</CardGroup>

## Related

* [Session Management](/concepts/session-management)
* [Memory CLI](/docs/cli/auto-memory)
* [Sessions Feature](/features/sessions)
