Skip to main content
By default, QoderSDKClient starts a brand new session with each connection. Through several fields in QoderAgentOptions, you can specify a session ID, resume a historical session, or fork from an existing session.

Concepts

A session corresponds to a persisted conversation history on the CLI side (including context, tool call records, compaction boundaries, etc.), identified by a UUID. The init system message contains the current session_id, which also serves as the anchor point for subsequent resume / fork_session operations.

Creating New Sessions

Default

Without passing any session-related fields, a new session is created each time:

Specifying a Session ID

Let the caller determine the session UUID (suitable when the host manages its own session index):

Resuming Sessions

Resume by ID

Resume the Most Recent

When you don’t know the session ID, use continue_conversation=True to pick up the most recently modified session:
Do not pass resume and continue_conversation simultaneously.

Forking Sessions

Derive a new session from an existing one, preserving the original context but obtaining a new session ID. The original session is unaffected:
To specify an ID for the forked new session:

Field Reference

Getting the Current Session ID

The data dict of the init system message carries session_id; ResultMessage carries it too. Either can be used for bookkeeping:

User data directory

The user data directory stores session history, resources, logs, and other user-level CLI data. Set QODER_CONFIG_DIR through QoderAgentOptions.env to select this directory: