Create a session
Create a session for a task. Provide the initial prompt in description and optionally configure its repositories, agent, Build (normal) or Plan (planning) mode, and private or workspace visibility.
import Tembo from '@tembo-io/sdk';
const client = new Tembo();
const session = await client.sessions.create({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: [],
});use tembo_rs::*;
let client = Tembo::from_env()?;
let response = client
.sessions()
.create(SessionsCreateBody {
agent: Some("claudeCode:claude-fable-5-1".to_string()),
base_branch: Some("main".to_string()),
mcp_servers: Some(vec![]),
project_id: Some("your-project-id".to_string()),
sandbox_size: None,
target_branch: Some("main".to_string()),
visibility: Some(SessionsCreateBodyVisibility::Private),
agent_options: None,
branch_name: None,
code_repository_ids: Some(vec!["123e4567-e89b-12d3-a456-426614174000".to_string()]),
description: "Fix the authentication bug in the login component".to_string(),
id: None,
rich_content: None,
pull_request_id: None,
queue_right_away: None,
session_mode: None,
startup_agent: None,
})
.send()
.await?;
curl --request POST \
--url https://api.tembo.io/v1/sessions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
'import requests
url = "https://api.tembo.io/v1/sessions"
payload = {
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": ["123e4567-e89b-12d3-a456-426614174000"],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: []
})
};
fetch('https://api.tembo.io/v1/sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tembo.io/v1/sessions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'Fix the authentication bug in the login component',
'projectId' => 'your-project-id',
'agent' => 'claudeCode:claude-fable-5-1',
'codeRepositoryIds' => [
'123e4567-e89b-12d3-a456-426614174000'
],
'baseBranch' => 'main',
'targetBranch' => 'main',
'visibility' => 'private',
'mcpServers' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tembo.io/v1/sessions"
payload := strings.NewReader("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tembo.io/v1/sessions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tembo.io/v1/sessions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}"
response = http.request(request)
puts response.read_body{
"agent": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artifactType": "PullRequest",
"baseBranch": "<string>",
"branchName": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"externalUrl": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"lastQueuedAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z",
"level": 123,
"mode": "normal",
"projectId": "<string>",
"sandboxSize": "nano",
"sessionType": "Chat",
"targetBranch": "<string>",
"title": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"visibility": "public",
"artifacts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "PullRequest",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"pullRequests": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true,
"sourceBranch": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"agent": "<string>",
"diff": {
"additions": 1,
"deletions": 1,
"data": "<string>"
},
"updatedAt": "2023-11-07T05:31:56Z",
"baseBranch": "<string>",
"headSha": "<string>",
"author": {
"avatarUrl": "<string>",
"login": "<string>"
},
"codeRepository": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"owner": "<string>",
"baseBranch": "<string>",
"provider": "<string>"
}
}
]
}
],
"description": "<string>",
"diffSummary": {
"additions": 123,
"deletions": 123
},
"htmlUrl": "<string>",
"isPinned": true,
"project": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"icon": "folder",
"color": "neutral"
},
"sessionSource": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "<string>",
"repositories": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "<string>"
}
]
},
"sourcePullRequest": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true
},
"state": {
"isQueued": true,
"isCancelled": true,
"isCompleted": true,
"isFailed": true,
"inProgress": true,
"current": "inProgress"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Initial task or prompt for the session.
1 - 1000000Agent and model key to run, such as claudeCode:claude-fable-5-1. Omit to use the default.
1 - 500Git branch to start work from. Omit or use null for the repository default.
1 - 500MCP server or connection IDs to enable for the session.
1001 - 500Project environment to use for the workspace. Omit or use null for the default.
VM size for the session workspace.
nano, micro, small, medium, large, xl, xxl, ultra Default target branch for pull requests created by the session.
1 - 500Session visibility: private or visible to workspace (public).
private, public Agent-specific runtime options, such as reasoning effort.
Show child attributes
Show child attributes
Git branch for this session. Omit or use null to generate a branch name.
1 - 500Repository IDs to make available in the session workspace.
100Optional caller-supplied session UUID. Omit to generate one.
Optional rich-text representation of the initial task. Provide description separately.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
Show child attributes
Show child attributes
{
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [{ "type": "text", "text": "Hello" }]
}
]
}
Pull request to associate with the session. Requires richContent.
Whether to queue the initial task immediately instead of only creating the session.
Whether to create a chat session or a terminal session.
chat, terminal Coding agent to start in a terminal session.
claudeCode, codex, opencode, pi, amp, cursor Response
Create a session
PullRequest, ToolCall, Plan, Response, File, Service, Source, null normal, planning nano, micro, small, medium, large, xl, xxl, ultra, null Chat, Terminal public, private Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
import Tembo from '@tembo-io/sdk';
const client = new Tembo();
const session = await client.sessions.create({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: [],
});use tembo_rs::*;
let client = Tembo::from_env()?;
let response = client
.sessions()
.create(SessionsCreateBody {
agent: Some("claudeCode:claude-fable-5-1".to_string()),
base_branch: Some("main".to_string()),
mcp_servers: Some(vec![]),
project_id: Some("your-project-id".to_string()),
sandbox_size: None,
target_branch: Some("main".to_string()),
visibility: Some(SessionsCreateBodyVisibility::Private),
agent_options: None,
branch_name: None,
code_repository_ids: Some(vec!["123e4567-e89b-12d3-a456-426614174000".to_string()]),
description: "Fix the authentication bug in the login component".to_string(),
id: None,
rich_content: None,
pull_request_id: None,
queue_right_away: None,
session_mode: None,
startup_agent: None,
})
.send()
.await?;
curl --request POST \
--url https://api.tembo.io/v1/sessions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
'import requests
url = "https://api.tembo.io/v1/sessions"
payload = {
"description": "Fix the authentication bug in the login component",
"projectId": "your-project-id",
"agent": "claudeCode:claude-fable-5-1",
"codeRepositoryIds": ["123e4567-e89b-12d3-a456-426614174000"],
"baseBranch": "main",
"targetBranch": "main",
"visibility": "private",
"mcpServers": []
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Fix the authentication bug in the login component',
projectId: 'your-project-id',
agent: 'claudeCode:claude-fable-5-1',
codeRepositoryIds: ['123e4567-e89b-12d3-a456-426614174000'],
baseBranch: 'main',
targetBranch: 'main',
visibility: 'private',
mcpServers: []
})
};
fetch('https://api.tembo.io/v1/sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tembo.io/v1/sessions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'Fix the authentication bug in the login component',
'projectId' => 'your-project-id',
'agent' => 'claudeCode:claude-fable-5-1',
'codeRepositoryIds' => [
'123e4567-e89b-12d3-a456-426614174000'
],
'baseBranch' => 'main',
'targetBranch' => 'main',
'visibility' => 'private',
'mcpServers' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tembo.io/v1/sessions"
payload := strings.NewReader("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tembo.io/v1/sessions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tembo.io/v1/sessions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Fix the authentication bug in the login component\",\n \"projectId\": \"your-project-id\",\n \"agent\": \"claudeCode:claude-fable-5-1\",\n \"codeRepositoryIds\": [\n \"123e4567-e89b-12d3-a456-426614174000\"\n ],\n \"baseBranch\": \"main\",\n \"targetBranch\": \"main\",\n \"visibility\": \"private\",\n \"mcpServers\": []\n}"
response = http.request(request)
puts response.read_body{
"agent": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"artifactType": "PullRequest",
"baseBranch": "<string>",
"branchName": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"externalUrl": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"lastQueuedAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z",
"level": 123,
"mode": "normal",
"projectId": "<string>",
"sandboxSize": "nano",
"sessionType": "Chat",
"targetBranch": "<string>",
"title": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"visibility": "public",
"artifacts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "PullRequest",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"pullRequests": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true,
"sourceBranch": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"agent": "<string>",
"diff": {
"additions": 1,
"deletions": 1,
"data": "<string>"
},
"updatedAt": "2023-11-07T05:31:56Z",
"baseBranch": "<string>",
"headSha": "<string>",
"author": {
"avatarUrl": "<string>",
"login": "<string>"
},
"codeRepository": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"owner": "<string>",
"baseBranch": "<string>",
"provider": "<string>"
}
}
]
}
],
"description": "<string>",
"diffSummary": {
"additions": 123,
"deletions": 123
},
"htmlUrl": "<string>",
"isPinned": true,
"project": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"icon": "folder",
"color": "neutral"
},
"sessionSource": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "<string>",
"repositories": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"provider": "<string>"
}
]
},
"sourcePullRequest": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"title": "<string>",
"status": "open",
"isDraft": true
},
"state": {
"isQueued": true,
"isCancelled": true,
"isCompleted": true,
"isFailed": true,
"inProgress": true,
"current": "inProgress"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}