For AI agents and developers: machine-readable getting-started guide and automated Salesforce org setup (/llms.txt).

LabBox

LabBox

A LabBox is a Salesforce org provisioned through Agentforce Labs with every AI feature already enabled. Einstein, Agentforce, Data Cloud, OmniChannel routing, messaging channels, and an Experience Site with a chat widget are all configured and ready to use the moment you sign in.

No manual setup required. If you want to replicate the same configuration in your own org, each section below includes step-by-step instructions.

Already have a LabBox?

You do not need to enable any of these settings yourself. This page documents what is pre-configured so you can understand the capabilities available to you.

Core Platform

Einstein, Agentforce, and Data Cloud must be turned on before any AI features work. These are the foundational toggles. Everything else depends on them.

SettingSetup LocationWhat it does
EinsteinEinstein SetupEnables the Einstein AI platform across the org
AgentforceEinstein Copilot SetupEnables the Agentforce agent runtime and Copilot features
Data CloudOrg ProvisioningEnables the Customer Data Platform for unified data access and grounding. Provisioning can take 30–60 minutes.

Enable it yourself

1
2
3
4
5
6
# Verify Data Cloud is provisioned
sf data query --target-org <your-org-alias> \
  --query "SELECT Id, Name, DurableId FROM Organization LIMIT 1"

# Verify Einstein limits are available
sf org display --target-org <your-org-alias> --verbose --json | jq '.result'

API Access

SettingSetup LocationWhat it does
SOAP API LoginUser Interface SetupAllows programmatic login via SOAP API, used by CLI tools and backend services

Enable it yourself

1
2
# No CLI equivalent. Use Browser Agent
echo "SOAP API Login must be enabled via Setup UI"

Einstein Trust Layer

SettingSetup LocationWhat it does
Large Language Model Data MaskingEinstein Trust LayerDisabled to allow larger LLM context. Toggle is set to OFF so sensitive data patterns are not masked in prompts.

Enable it yourself

1
2
# No CLI equivalent. Use Browser Agent
echo "Data Masking must be disabled via Setup UI"

Identity Verification

SettingSetup LocationWhat it does
Require identity verification for email changesIdentity VerificationDisabled so that org automation can update user email addresses without triggering verification flows.

Enable it yourself

1
2
# No CLI equivalent. Use Browser Agent
echo "Identity Verification must be configured via Setup UI"

Permissions

A custom AiAdmin permission set is created with the following system permissions:

PermissionWhat it grants
Manage Agentforce GridsCreate and manage Agentforce Grid worksheets
Manage Agentforce TestingRun Agent Eval Labs tests against agents
Manage AI AgentsCreate, edit, and publish Agentforce agents
API EnabledProgrammatic API access for CLI tools and integrations

The following permission sets are assigned to the org user:

Permission SetPurpose
AiAdminAI agent management (see above)
Data Cloud UserAccess to Data Cloud objects and features
Access Agentforce OptimizationAgent optimization and performance features
Tableau Next AdminTableau analytics administration
Tableau Next Platform AnalystTableau analytics usage and dashboards
Contact Center AdminContact center administration

The full list of enabled permission sets also includes AI Workbench, Access Agentforce Default Agent, Agent Presence Status Access, Agentforce Default Admin, Agentforce Reference App, Agentforce Service Agent Configuration, Code Builder User, Contact Center Agent, Contact Center Supervisor, Customer Orders, Data Cloud Architect, Einstein Sales Emails, Prompt Template Manager, Prompt Template User, and Tableau Next Consumer.

Enable it yourself

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Create AiAdmin permission set
EXISTING=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM PermissionSet WHERE Name='AiAdmin'" \
  | jq -r '.result.totalSize')

if [ "$EXISTING" = "0" ]; then
  sf data create record --target-org <your-org-alias> \
    --sobject PermissionSet \
    --values "Name='AiAdmin' Label='AiAdmin' Description='Admin permissions for Agentforce'"
fi

# Deploy system permissions via Metadata API
mkdir -p /tmp/aiadmin-deploy/permissionsets
cat > /tmp/aiadmin-deploy/permissionsets/AiAdmin.permissionset-meta.xml << 'XMLEOF'
<?xml version="1.0" encoding="UTF-8"?>
<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
    <label>AiAdmin</label>
    <description>Admin permissions for Agentforce</description>
    <userPermissions>
        <enabled>true</enabled>
        <name>ManageAgentforceGrids</name>
    </userPermissions>
    <userPermissions>
        <enabled>true</enabled>
        <name>ManageAgentforceTesting</name>
    </userPermissions>
    <userPermissions>
        <enabled>true</enabled>
        <name>ManageAiAgents</name>
    </userPermissions>
    <userPermissions>
        <enabled>true</enabled>
        <name>ApiEnabled</name>
    </userPermissions>
</PermissionSet>
XMLEOF
cat > /tmp/aiadmin-deploy/package.xml << 'XMLEOF'
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>AiAdmin</members>
        <name>PermissionSet</name>
    </types>
    <version>65.0</version>
</Package>
XMLEOF
sf project deploy start --target-org <your-org-alias> --source-dir /tmp/aiadmin-deploy

# Assign AiAdmin + Data Cloud User to admin
ADMIN_ID=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM User WHERE Profile.Name='System Administrator' AND IsActive=true ORDER BY CreatedDate ASC LIMIT 1" \
  | jq -r '.result.records[0].Id')

PS_ID=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM PermissionSet WHERE Name='AiAdmin'" \
  | jq -r '.result.records[0].Id')
sf data create record --target-org <your-org-alias> \
  --sobject PermissionSetAssignment \
  --values "PermissionSetId='$PS_ID' AssigneeId='$ADMIN_ID'"

DC_PS_ID=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM PermissionSet WHERE Label='Data Cloud User' LIMIT 1" \
  | jq -r '.result.records[0].Id')
sf data create record --target-org <your-org-alias> \
  --sobject PermissionSetAssignment \
  --values "PermissionSetId='$DC_PS_ID' AssigneeId='$ADMIN_ID'"

Verify: SELECT Id, Assignee.Name, PermissionSet.Name FROM PermissionSetAssignment WHERE PermissionSet.Name='AiAdmin' AND Assignee.Profile.Name='System Administrator'. This should return one record.

Observability & Analytics

These settings enable the full observability stack for agents: monitoring, debugging, and optimization.

SettingSetup LocationWhat it does
Einstein Audit and FeedbackEinstein Audit Analytics & MonitoringAudit logging for all Einstein AI interactions
Knowledge / RAG Quality Data and MetricsEinstein Audit Analytics & MonitoringQuality metrics for RAG-based knowledge retrieval
Agent AnalyticsEinstein Audit Analytics & MonitoringAgent performance dashboards and usage data
Agentforce Session TracingEinstein Audit Analytics & MonitoringSession-level debugging traces for agent conversations
Agent OptimizationEinstein Audit Analytics & MonitoringAI-driven optimization recommendations
Service Agent Analytics AppAgent Analytics SetupPre-built analytics app for service agent performance

The Service Agent Analytics app can take up to 15 minutes to fully install after org provisioning because it depends on Agent Analytics being enabled first.

Enable it yourself

1
2
3
4
5
6
7
8
9
10
11
# Audit toggles require Setup UI. Use Browser Agent
# After enabling, assign Access Agentforce Optimization:
ADMIN_ID=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM User WHERE Profile.Name='System Administrator' AND IsActive=true LIMIT 1" \
  | jq -r '.result.records[0].Id')
OPT_PS_ID=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM PermissionSet WHERE Label='Access Agentforce Optimization' LIMIT 1" \
  | jq -r '.result.records[0].Id')
sf data create record --target-org <your-org-alias> \
  --sobject PermissionSetAssignment \
  --values "PermissionSetId='$OPT_PS_ID' AssigneeId='$ADMIN_ID'"

Digital Experiences

SettingSetup LocationWhat it does
Enable Digital ExperiencesFeature Settings → Digital Experiences → SettingsAllows creation of Experience Cloud sites for hosting chat widgets

Enable it yourself

1
2
# No CLI equivalent. Use Browser Agent
echo "Digital Experiences must be enabled via Setup UI"

Routing

OmniChannel routing allows agents to receive and handle conversations.

SettingSetup LocationWhat it does
Skills-Based and Direct-to-Agent RoutingOmniChannel SettingsRoutes conversations to agents based on skills or direct assignment
Secondary Routing PriorityOmniChannel SettingsFallback routing when the primary agent is unavailable

A routing configuration and fallback queue are pre-created:

ResourceNameDetails
Routing ConfigurationAgentforce Service configurationPriority 1, Most Available model, capacity 2/3
QueueAgentforce Service QueueSupports Messaging Session, linked to routing config

Enable it yourself

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Enable OmniChannel via Browser Agent first, then create routing config:
sf data create record --target-org <your-org-alias> \
  --sobject ServiceChannel \
  --values "DeveloperName='Agentforce_Service_configuration' MasterLabel='Agentforce Service configuration' RoutingModel='MostAvailable' SecondaryRoutingPriority=1"

# Create queue via Metadata API
mkdir -p /tmp/queue-deploy/queues
cat > /tmp/queue-deploy/queues/Agentforce_Service_Queue.queue-meta.xml << 'XMLEOF'
<?xml version="1.0" encoding="UTF-8"?>
<Queue xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Agentforce_Service_Queue</fullName>
    <name>Agentforce Service Queue</name>
    <queueSobject>
        <sobjectType>MessagingSession</sobjectType>
    </queueSobject>
</Queue>
XMLEOF
cat > /tmp/queue-deploy/package.xml << 'XMLEOF'
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Agentforce_Service_Queue</members>
        <name>Queue</name>
    </types>
    <version>65.0</version>
</Package>
XMLEOF
sf project deploy start --target-org <your-org-alias> --source-dir /tmp/queue-deploy

Verify: SELECT Id, DeveloperName FROM ServiceChannel WHERE DeveloperName='Agentforce_Service_configuration' and SELECT Id, DeveloperName FROM Group WHERE Type='Queue' AND DeveloperName='Agentforce_Service_Queue'. Both should return one record.

Messaging

SettingSetup LocationWhat it does
Enable MessagingFeature Settings → Service → Messaging → Messaging SettingsEnables the Messaging platform for agent chat conversations

A messaging channel is pre-created:

FieldValue
Channel NameSalesforce Agent Channel
Developer NameSalesforce_Agent
TypeEnhanced Chat
Deployment TypeWeb
Routing TypeAgentforce Service Agent
Fallback QueueAgentforce Service Queue

Enable it yourself

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
BOT_ID=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM BotDefinition WHERE DeveloperName='Reservation_Agent'" \
  | jq -r '.result.records[0].Id')
QUEUE_ID=$(sf data query --target-org <your-org-alias> --json \
  --query "SELECT Id FROM Group WHERE Type='Queue' AND DeveloperName='Agentforce_Service_Queue'" \
  | jq -r '.result.records[0].Id')

sf apex run --target-org <your-org-alias> << EOF
MessagingChannel channel = new MessagingChannel();
channel.DeveloperName = 'Salesforce_Agent';
channel.MasterLabel = 'Salesforce Agent Channel';
channel.MessageType = 'EmbeddedMessaging';
channel.MessagingPlatformKey = 'Salesforce_Agent-' + String.valueOf(Crypto.getRandomLong());
channel.IsActive = true;
channel.SessionHandlerId = '$BOT_ID';
channel.FallbackQueueId = '$QUEUE_ID';
insert channel;
System.debug('Created MessagingChannel: ' + channel.Id);
EOF

Embedded Service Deployment

An Embedded Service Deployment container is pre-created to host the chat widget.

FieldValue
Embedded Service Deployment NameSalesforce Agent Web Deployment
API NameSalesforce_Agent
TypeEnhanced Chat
Messaging ChannelSalesforce Agent Channel

After creation the deployment is switched to V2 and published so the chat widget is immediately available.

Enable it yourself

1
2
# Embedded Service Deployments are best created via the Setup UI wizard
echo "Use Browser Agent for Embedded Service Deployment creation"

Experience Site

An Experience Cloud site is pre-created with the chat widget embedded.

FieldValue
Site NameSalesforce Agent
TemplateBuild Your Own (LWR)
Public AccessEnabled
Enhanced ChatPlaced in Footer, linked to Salesforce Agent Web Deployment

Enable it yourself

1
2
3
4
5
6
7
8
9
# Create site
sf community create --target-org <your-org-alias> \
  --name "Salesforce Agent" \
  --template-name "Build Your Own (LWR)" \
  --url-path-prefix "salesforceagent"

# After adding Enhanced Chat component via Builder, publish:
sf community publish --target-org <your-org-alias> \
  --name "Salesforce Agent"

Verify: SELECT Id, Name, Status FROM Network WHERE Name='Salesforce Agent'. This should return one record with Status = 'Live'.

Site Domain & Trusted Domains

The Salesforce Site domain is registered and trusted domains are configured so the chat widget loads without CORS errors.

SettingSetup LocationWhat it does
Site DomainUser Interface → Sites & Domains → SitesRegistered so Experience Sites have a public URL
Trusted DomainSites & Domains → Sites*.my.site.com added to trusted domains for inline frames

Trusted domains are critical

Without the trusted domain entry, the chat widget will fail silently. No button appears and no errors are shown to the user. This is the most common cause of "chat doesn't work" issues.

Enable it yourself

1
2
3
4
5
6
7
8
9
10
11
12
# Register domain (check if already exists)
sf data query --target-org <your-org-alias> \
  --query "SELECT Id, Domain FROM Domain WHERE DomainType='DNS' LIMIT 1"

# Add trusted domain
sf data create record --target-org <your-org-alias> \
  --sobject CorsWhitelistEntry \
  --values "UrlPattern='https://*.my.site.com'"

# Republish site after adding trusted domain
sf community publish --target-org <your-org-alias> \
  --name "Salesforce Agent"

Agent Deployment

A default Agentforce Service Agent is deployed, compiled, and activated in the org.

StepWhat happens
Metadata DeployAgent bundle deployed via Metadata API
Script CompilationAgentScript compiled via SFAP authoring endpoint
Version PublishAgent version published and linked to the org instance
ActivationBot version set to Active so the agent can receive conversations

Enable it yourself

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 1. Deploy agent metadata
sf project deploy start --target-org <your-org-alias> \
  --source-dir data/AgentforceDotCom

# 2. Get session and instance
SESSION_ID=$(sf org display --target-org <your-org-alias> --json | jq -r '.result.accessToken')
INSTANCE=$(sf org display --target-org <your-org-alias> --json | jq -r '.result.instanceUrl')

# 3. Get NamedUser JWT
JWT=$(curl -s "$INSTANCE/agentforce/bootstrap/nameduser" \
  -H "Cookie: sid=$SESSION_ID" \
  -H "Accept: application/json" | jq -r '.access_token')

# 4. Compile AgentScript
SCRIPT=$(cat data/AgentforceDotCom/aiAuthoringBundles/Reservation_Agent/Reservation_Agent.agent)
COMPILED=$(curl -s -X POST "https://api.salesforce.com/einstein/ai-agent/v1.1/authoring/scripts" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -H "x-client-name: org-recipe" \
  -d "{\"assets\":[{\"type\":\"AFScript\",\"name\":\"AFScript\",\"content\":$(echo "$SCRIPT" | jq -Rs .)}],\"afScriptVersion\":\"1.0.1\"}")
ARTIFACT=$(echo "$COMPILED" | jq '.compiledArtifact')

# 5. Publish agent version
PUBLISH=$(curl -s -X POST "https://api.salesforce.com/einstein/ai-agent/v1.1/authoring/agents" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d "{\"agentDefinition\":$ARTIFACT,\"agentVersion\":\"1\",\"instanceConfig\":{\"endpoint\":\"$INSTANCE\"}}")
BOT_VERSION_ID=$(echo "$PUBLISH" | jq -r '.botVersionId')

# 6. Activate
curl -X POST "$INSTANCE/services/data/v65.0/connect/bot-versions/$BOT_VERSION_ID/activation" \
  -H "Authorization: Bearer $SESSION_ID" \
  -H "Content-Type: application/json" \
  -d '{"status":"ACTIVE"}'

MCP Servers

MCP (Model Context Protocol) servers expose Salesforce data and actions to agents as callable tools. Each server bundles a set of related tools an agent can invoke at runtime.

SettingSetup LocationWhat it does
Enable MCP Service (Beta)Setup → User InterfaceTurns on the MCP Service for the org
Activate serversSetup → Integrations → API Catalog → MCP ServersExposes each server's tools to agents

MCP is available on Enterprise, Developer, and Unlimited editions (GA, April 2026), so a freshly provisioned LabBox already has it. To turn it on, check the "Enable MCP Service (Beta)" preference under Setup → User Interface, then activate the servers you want.

Standard MCP servers ship Inactive by default — each one must be activated individually in Setup before its tools become available to agents. There is no Metadata API type or Tooling-API field to activate a server programmatically — activation is UI-only.

ServerToolsWhat it exposes
sobject-reads6 toolsRead access to standard and custom sObject records
sobject-mutations9 toolsCreate and update sObject records
sobject-deletes8 toolsDelete sObject records
sobject-all11 tools + 2 promptsCombined read, mutate, and delete access with guided prompts
data-cloud-queries2 toolsQuery Data Cloud objects and unified profiles
metadata-experts1 toolInspect org metadata
salesforce-api-context6 toolsSalesforce API reference and context for grounding agent responses

Enable it yourself

1
2
3
# No CLI equivalent. MCP server activation is UI-only.
# There is no Metadata API type or Tooling-API field to activate a server.
echo "MCP Servers must be activated via Setup UI"

Client auth (External Client App)

External MCP clients authenticate with an External Client App (ECA) using OAuth scopes api, sfap_api, refresh_token, einstein_gpt_api (keep refresh_token or clients disconnect frequently). Runtime endpoints are https://api.salesforce.com/platform/mcp/v1/platform/<server> for standard servers and /v1/custom/<name> for custom ones.

Agentforce Coworker

Agentforce Coworker is a one-click enablement that provisions an end-to-end coworker experience: Agentforce Studio, CRM connectivity, search infrastructure, the coworker agent, personalization, and Data 360 user ingestion with identity resolution.

SettingSetup LocationWhat it does
Enable Agentforce CoworkerSetup → Agentforce Coworker → Get Started → Turn OnProvisions the end-to-end coworker experience for the org
ComponentWhat it sets up
Agentforce StudioThe authoring and management surface for the coworker agent
CRM connectivityConnects the coworker to your CRM data
Search infrastructureAI search indexing that grounds coworker responses
Coworker agentThe pre-built Agentforce Coworker agent
PersonalizationPer-user tailoring of coworker behavior
Data 360 ingestionUser ingestion and identity resolution via Data 360

Prerequisites:

PrerequisiteNotes
AgenticEnterpriseSearchAddOnThe binding add-on license (paired with EinsteinAgentPlatform). Auto-provisions the AI Search permission set licenses. Bundled on Flex Foundations / A1E / A4X / Agentforce for Service or Sales; otherwise add it (internally via Black Tab, customers via their SKU).
Data 360 / Data CloudA Data Cloud data space is required. Verify a Data 360 app appears in the App Launcher.
Beta GenAI ModelsSetup → Einstein Setup → "Beta Generative AI Models" enabled
RoleData 360 Admin or Data 360 Architect

The license is the gate, not the PSLs

The AgenticEnterpriseSearchAddOn license auto-provisions the permission set licenses behind Coworker — AI Search Permission Set License (AISearchUserPsl) and AI Search Setup Permission Set License (AISearchAdminPsl). Admins do not request these PSLs directly; provisioning the add-on license grants them. Note that the add-on is a SKU/provisioning-level grant — it does not appear as a row in PermissionSetLicense; the queryable artifacts are the two AI Search PSLs named above.

Permissions:

To do thisAssign
Configure CoworkerThe Agentforce Coworker Admin permission set. (The Agentforce Coworker Setup PSL is consumed automatically — no manual step.)
Use CoworkerGrant end-user access via the "Manage Access to Agentforce Coworker" section of Coworker Setup (it assigns the AI Search access permission set group created during setup — confirm the exact name in your org). Do not assign the bare "Agentforce Coworker User" / "Ask Agentforce User" permission set; it grants the UI but not the agent.

Legacy "Ask Agentforce" label

On orgs not yet on the 262 release, this feature and its permission sets may still appear under the legacy "Ask Agentforce" label — it is the same product (the rename rolled out around early June). The "Get Started with Agentforce Coworker" Setup node only appears after the Agentforce Coworker Admin permission set is assigned and the page is refreshed.

Enable it yourself

1
2
3
4
5
# The add-on license is provisioned via Black Tab (internal) or your SKU,
# then Coworker is turned on via the Setup UI. But you can verify the AI Search
# permission set licenses landed in the org:
sf data query --target-org <your-org-alias> \
  --query "SELECT DeveloperName, MasterLabel FROM PermissionSetLicense WHERE DeveloperName IN ('AISearchUserPsl','AISearchAdminPsl')"

Reference

Salesforce's public guide: Turn On Agentforce Coworker Infrastructure.

Agentforce Voice

Agentforce Voice brings agent conversations to voice channels.

SettingSetup LocationWhat it does
Add a voice connectionAgent Builder → open agent → Voice SettingsUnlocks Voice for the agent (Telephony or Enhanced Chat v2)

You unlock Voice Settings in Agent Builder by adding a voice connection to your agent. There are two enablement paths:

PathWhat it gives youSetup effort
Telephony connectionFull voice agent over PSTN/SIP (phone calls)Separate manual setup — AWS Contact Center, call flows, and procuring phone numbers (not automated). OrgFarm offers an "AgentforceVoice" checkout template for voice-enabled orgs.
Enhanced Chat v2 (ECv2)"Voice in chat" — microphone input within the Enhanced Chat v2 windowLighter path; "Voice-Enabled Agents in Enhanced Chat v2" (Summer '26 release)

Full telephony is a separate manual setup

Telephony voice (AWS Contact Center, call flows, and phone numbers) is not pre-configured in a LabBox and is not automated — it is a separate manual setup that takes roughly 40 minutes end to end. For a ready-made voice-enabled org, use the OrgFarm "AgentforceVoice" checkout template instead of building telephony by hand.

Required licenses and permission

Agentforce Voice requires two licenses in the org: an Agentforce license and a Service Cloud Voice license. Agentforce Voice is the AI voice-agent layer that runs on top of Service Cloud Voice telephony, so both must be present.

Reference

See Salesforce's Agentforce Voice prerequisites for the current license and permission requirements.

Enable it yourself

1
2
3
4
5
# The Agentforce + Service Cloud Voice licenses are provisioned commercially
# (Black Tab internal, or your Voice SKU), not via CLI. But you can verify
# whether Service Cloud Voice is switched on in the org:
sf data query --use-tooling-api --target-org <your-org-alias> \
  --query "SELECT IsServiceCloudVoiceEnabled FROM ServiceCloudVoiceSettings"

Vibes

Vibes is Salesforce's in-org agentic coding experience. It comes in two surfaces: Vibes Chat, which runs in VS Code Desktop, and Vibes IDE, which is browser-based and launched from within the org.

SettingSetup LocationWhat it does
VibesLaunched in-org (Vibes IDE) or VS Code Desktop (Vibes Chat)In-org agentic coding experience
AspectDetail
SurfacesVibes Chat (VS Code Desktop) and Vibes IDE (browser, launched from within the org)
PricingFree in Developer Edition — no purchase required
ModelAnthropic Claude Sonnet (current generation)
Lifetime limit110 requests / 1.5M tokens per org — one-time, does not refresh, no fallback model

Model and limits last verified June 2026; both are subject to change — confirm the current values in your org.

Developer Edition limits and exclusions

The Developer Edition allowance is a one-time lifetime cap of 110 requests / 1.5M tokens per org. It does not refresh, and once it is exhausted there is no fallback model — Vibes simply stops. Developer Edition orgs cannot receive the unmetered per-user-per-month (PUPM) license because there is no billing mechanism in DE; ISVs likewise cannot get unmetered access in DE orgs. Vibes is not available in the EU Operating Zone or Government Cloud.

Enable it yourself

1
2
3
# No CLI equivalent. Vibes is available in-org by edition and region,
# not provisioned via API.
echo "Vibes availability is determined by org edition and region"

Ready to build

Your LabBox comes pre-configured with all of the above, including a working agent, messaging channel, and Experience Site with a chat widget. If any of these settings appear disabled, contact the Agentforce Labs team.