May 8, 2026
Latest updates and announcements
Session reuse, update, and connected accounts as arrays
Session reuse with composio.use()
composio.create() now returns a new session ID on every call, even for identical configs, for better isolation and observability. For multi-turn conversations, store the session ID and reuse it with composio.use():
from composio import Composio
composio = Composio()
# First request
session = composio.create(user_id="user_123")
session_id = session.session_id
# Subsequent requests
session = composio.use(session_id)
tools = session.tools()// First request
const session = await composio.create("user_123");
const sessionId = session.sessionId;
// Subsequent requests
const session = await composio.use(sessionId);
const tools = await session.tools();Custom tools can also be attached when reusing a session. See Reusing a session and Custom tools.
Update session config with session.update()
Modify a session's toolkits, auth configs, connected accounts, and other settings without creating a new session. Only the fields you pass are changed:
session.update(
toolkits=["gmail", "slack"],
auth_configs={"gmail": "ac_new_config"},
)await session.update({
toolkits: ["gmail", "slack"],
authConfigs: { gmail: "ac_new_config" },
});See Updating a session.
connectedAccounts accepts arrays
connectedAccounts (TypeScript) and connected_accounts (Python) now accept an array of connected account IDs per toolkit. A single string is still accepted for backwards compatibility and is automatically coerced to an array.
session = composio.create(
user_id="user_123",
connected_accounts={
"gmail": ["ca_work_gmail"],
},
)const session = await composio.create("user_123", {
connectedAccounts: {
gmail: ["ca_work_gmail"],
},
});Only one account per toolkit is allowed when multi-account mode is disabled.
SDK versions
| SDK | Minimum version |
|---|---|
TypeScript @composio/core | 0.10.0 |
Python composio | 0.13.0 |