---
title: "Settings · intentic sandbox API"
description: "The sandbox's own configuration, plus what it has saved you and which rules fired. Every route in the settings group of the intentic sandbox API."
url: "https://intentic.dev/api/settings/"
---

Agent setup

# Settings

The sandbox's own configuration, plus what it has saved you and which rules fired

**On this page (11 sections)**

- [How this sandbox is configured](#settings-get)
- [Change the sandbox settings](#settings-set)
- [What the token-saving measures were worth](#settings-savings)
- [Read a built-in system prompt](#settings-builtinPrompt)
- [When each rule last did something](#settings-firings)
- [What each repository asks to run on its own code](#settings-repoChecks)
- [The state of this sandbox's field notes](#settings-fieldNotes)
- [Offer this sandbox a clock, if it has none](#settings-adoptTimezone)
- [Which words the editor uses for you here](#settings-audience)
- [Choose which words the editor uses for you here](#settings-setAudience)
- [Switch a repository's own checks on or off](#settings-adoptRepoChecks)

Read and write the settings that govern how agents behave here. The other three routes are read-only reports on their effects: what the token-saving measures were actually worth, the text behind a built-in prompt, and when each rule last did something.

11 calls. Pick one to open it, or use the list on the right.

**GET`/settings` How this sandbox is configured**

Every setting that governs how agents behave here, with the defaults filled in for anything nobody has chosen.

### What you send

Nothing. Call it as it is.

### What comes back

| Field | Type |
| --- | --- |
| `timezone` Which clock this sandbox's schedules are… | "" | string |
| `stableSystemPrompt` Keep the instructions identical between turns… | boolean |
| `skills` Which built-in tools are switched on | string[] |
| `personaRouting` Whether a new chat is matched… | boolean |
| `hashlineEdits` Have the agent edit files by… | boolean |
| `systemPromptMode` Which instructions the agent starts from:… | "intentic" | "claude" | "custom" |
| `systemPrompt` Your own instructions, used only when… | string |
| `leanGuidance` Send this product's own guidance in… | boolean |
| `leanGuidanceHoldout` What share of conversations to keep… | number |
| `toolResultClearing` Replace old tool results from a… | boolean |
| `toolResultClearingHoldout` What share of conversations keep every… | number |
| `iqSearch` Teach the agent how to use… | boolean |
| `iqSearchHoldout` What share of conversations to run… | number |
| `workspaceMap` Open every conversation with a map… | boolean |
| `workspaceMapHoldout` What share of conversations to open… | number |
| `fieldNotes` Open every turn with a brief… | boolean |
| `fieldNotesBudget` How much of that brief to… | integer |
| `fieldNotesHoldout` What share of conversations to run… | number |
| `outputCleaners` Which command outputs to trim before… | string |
| `outputHoldout` What share of commands to leave… | number |
| `modelRoles` Which models do which job, one… | object |
| `autoModelGuidance` What you would tell somebody choosing… | string |
| `changelogRepos` Which repositories keep a changelog, and… | string[] |
| `agentRetentionDays` How many days a finished conversation… | number |
| `limitPolicy` What happens to a turn a… | "wait" | "resend" | "move" |
| `outagePolicy` What happens to a turn the… | "wait" | "retry" |
| `stopPolicy` What happens to a turn that… | "wait" | "retry" |
| `limitMoveCarryUnder` When a spent usage limit moves… | integer |
| `keepWarm` Keeping an idle conversation's prompt cache… | object |
| `auto` Keep a Claude conversation's prompt cache… | boolean |
| `hours` How long an idle conversation is… | number |
| `minTokens` Only conversations at least this large,… | integer |
| `reserve` How much of an account's usage… | integer |
| `autoRepair` Whether main's CI failing is repaired… | boolean |
| `followOrigin` Whether each workspace repo keeps up… | boolean |
| `offload` Which heavy work runs on a… | object |
| `commands` | object |
| `continueWhenNeedMet` Whether a conversation carries on by… | boolean |
| `autoResumeOnRestart` Whether a turn killed by the… | boolean |
| `adoptedChecks` Which repositories may run the checks… | object |
| `rules` Standing decisions about the sandbox's own… | object[] |
| `id` | string |
| `label` | string |
| `moment` | "file.edited" | "turn.ending" | "agent.finished" | "agent.landed" |
| `when` | object |
| `repo` | string |
| `paths` | string[] |
| `outcome` | "clean" | "error" | "conflict" | "checks-failed"[] |
| `sample` | number |
| `action` | object |
| `when kind is "command"` | shape |
| `command` | string |
| `timeoutMs` | number |
| `when kind is "verdict"` | shape |
| `verdict` | "allow" | "hold" |
| `when kind is "builtin"` | shape |
| `name` | "verify-ui-edits" | "version-landed" |
| `enabled` | boolean |
| `automationFailureLimit` How many failures in a row… | number |
| `admission` Whether work started from outside may… | object |
| `schedule` | "allow" | "hold" | "deny" |
| `event` | "allow" | "hold" | "deny" |
| `listener` | "allow" | "hold" | "deny" |
| `webchat` | "allow" | "hold" | "deny" |
| `issues` | "allow" | "hold" | "deny" |
| `workspace` | "allow" | "hold" | "deny" |
| `workflow` | "allow" | "deny" |
| `actionRules` What an agent may do out… | object |
| `commandJudge` Whether a model reads your safety… | "off" | "watch" | "on" |
| `projectInstalls` What happens when an agent installs… | "automatic" | "ask" | "never" |
| `subagentsAtOnce` How many subagents may work at… | number |
| `subagentsPerTurn` How many a single turn may… | number |
| `subagentDepth` How many levels deep the delegation… | number |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/settings" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.get();
```

**POST`/settings` Change the sandbox settings**

Writes the settings whole, so send the complete object rather than the fields you changed.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `timezone` Which clock this sandbox's schedules are… | "" | string | body |
| `stableSystemPrompt` Keep the instructions identical between turns… | boolean | body |
| `skills` Which built-in tools are switched on | string[] | body |
| `personaRouting` Whether a new chat is matched… | boolean | body |
| `hashlineEdits` Have the agent edit files by… | boolean | body |
| `systemPromptMode` Which instructions the agent starts from:… | "intentic" | "claude" | "custom" | body |
| `systemPrompt` Your own instructions, used only when… | string | body |
| `leanGuidance` Send this product's own guidance in… | boolean | body |
| `leanGuidanceHoldout` What share of conversations to keep… | number | body |
| `toolResultClearing` Replace old tool results from a… | boolean | body |
| `toolResultClearingHoldout` What share of conversations keep every… | number | body |
| `iqSearch` Teach the agent how to use… | boolean | body |
| `iqSearchHoldout` What share of conversations to run… | number | body |
| `workspaceMap` Open every conversation with a map… | boolean | body |
| `workspaceMapHoldout` What share of conversations to open… | number | body |
| `fieldNotes` Open every turn with a brief… | boolean | body |
| `fieldNotesBudget` How much of that brief to… | integer | body |
| `fieldNotesHoldout` What share of conversations to run… | number | body |
| `outputCleaners` Which command outputs to trim before… | string | body |
| `outputHoldout` What share of commands to leave… | number | body |
| `modelRoles` Which models do which job, one… | object | body |
| `autoModelGuidance` What you would tell somebody choosing… | string | body |
| `changelogRepos` Which repositories keep a changelog, and… | string[] | body |
| `agentRetentionDays` How many days a finished conversation… | number | body |
| `limitPolicy` What happens to a turn a… | "wait" | "resend" | "move" | body |
| `outagePolicy` What happens to a turn the… | "wait" | "retry" | body |
| `stopPolicy` What happens to a turn that… | "wait" | "retry" | body |
| `limitMoveCarryUnder` When a spent usage limit moves… | integer | body |
| `keepWarm` Keeping an idle conversation's prompt cache… | object | body |
| `auto` Keep a Claude conversation's prompt cache… | boolean | body |
| `hours` How long an idle conversation is… | number | body |
| `minTokens` Only conversations at least this large,… | integer | body |
| `reserve` How much of an account's usage… | integer | body |
| `autoRepair` Whether main's CI failing is repaired… | boolean | body |
| `followOrigin` Whether each workspace repo keeps up… | boolean | body |
| `offload` Which heavy work runs on a… | object | body |
| `commands` | object | body |
| `continueWhenNeedMet` Whether a conversation carries on by… | boolean | body |
| `autoResumeOnRestart` Whether a turn killed by the… | boolean | body |
| `adoptedChecks` Which repositories may run the checks… | object | body |
| `rules` Standing decisions about the sandbox's own… | object[] | body |
| `id` required | string | body |
| `label` required | string | body |
| `moment` required | "file.edited" | "turn.ending" | "agent.finished" | "agent.landed" | body |
| `when` | object | body |
| `repo` | string | body |
| `paths` | string[] | body |
| `outcome` | "clean" | "error" | "conflict" | "checks-failed"[] | body |
| `sample` | number | body |
| `action` required | object | body |
| `when kind is "command"` | shape | body |
| `command` required | string | body |
| `timeoutMs` | number | body |
| `when kind is "verdict"` | shape | body |
| `verdict` required | "allow" | "hold" | body |
| `when kind is "builtin"` | shape | body |
| `name` required | "verify-ui-edits" | "version-landed" | body |
| `enabled` | boolean | body |
| `automationFailureLimit` How many failures in a row… | number | body |
| `admission` Whether work started from outside may… | object | body |
| `schedule` | "allow" | "hold" | "deny" | body |
| `event` | "allow" | "hold" | "deny" | body |
| `listener` | "allow" | "hold" | "deny" | body |
| `webchat` | "allow" | "hold" | "deny" | body |
| `issues` | "allow" | "hold" | "deny" | body |
| `workspace` | "allow" | "hold" | "deny" | body |
| `workflow` | "allow" | "deny" | body |
| `actionRules` What an agent may do out… | object | body |
| `commandJudge` Whether a model reads your safety… | "off" | "watch" | "on" | body |
| `projectInstalls` What happens when an agent installs… | "automatic" | "ask" | "never" | body |
| `subagentsAtOnce` How many subagents may work at… | number | body |
| `subagentsPerTurn` How many a single turn may… | number | body |
| `subagentDepth` How many levels deep the delegation… | number | body |

### What comes back

| Field | Type |
| --- | --- |
| `ok` Always true | true |

Try it answered in this tab

curl

```bash
curl -X POST "$SANDBOX/settings" \
 -H "x-intentic-control: $INTENTIC_TOKEN" \
 -H "content-type: application/json" \
 -d '{"timezone":"","stableSystemPrompt":false,"skills":["…","…"],"personaRouting":true,"hashlineEdits":false,"systemPromptMode":"intentic","systemPrompt":"","leanGuidance":false,"leanGuidanceHoldout":0,"toolResultClearing":false,"toolResultClearingHoldout":0.5,"iqSearch":false,"iqSearchHoldout":0,"workspaceMap":false,"workspaceMapHoldout":0,"fieldNotes":false,"fieldNotesBudget":4000,"fieldNotesHoldout":0,"outputCleaners":"","outputHoldout":0,"modelRoles":{"src/app.ts":[{"provider":"claude","model":"claude-sonnet-4-6","effort":"…","thinking":true,"fast":true,"harness":"native"},{"provider":"claude","model":"claude-haiku-4-6","effort":"…","thinking":true,"fast":true,"harness":"claude-code"}],"README.md":[{"provider":"claude","model":"claude-sonnet-4-6","effort":"…","thinking":true,"fast":true,"harness":"native"},{"provider":"claude","model":"claude-haiku-4-6","effort":"…","thinking":true,"fast":true,"harness":"claude-code"}]},"autoModelGuidance":"","changelogRepos":["…","…"],"agentRetentionDays":3,"limitPolicy":"wait","outagePolicy":"wait","stopPolicy":"wait","limitMoveCarryUnder":100000,"keepWarm":{"auto":false,"hours":4,"minTokens":100000,"reserve":15},"autoRepair":true,"followOrigin":true,"offload":{"commands":{"src/app.ts":"…","README.md":"…"}},"continueWhenNeedMet":true,"autoResumeOnRestart":false,"adoptedChecks":{"src/app.ts":"…","README.md":"…"},"rules":[{"id":"a1b2c3d4","label":"Nightly changelog","moment":"file.edited","when":{"repo":"root","paths":["src/app.ts","README.md"],"outcome":["clean","error"],"sample":1},"action":{"kind":"command","command":"pnpm dev","timeoutMs":900000},"enabled":true},{"id":"e5f6a7b8","label":"Release notes","moment":"turn.ending","when":{"repo":"site","paths":["src/app.ts","README.md"],"outcome":["clean","error"],"sample":1},"action":{"kind":"command","command":"pnpm build","timeoutMs":900000},"enabled":true}],"automationFailureLimit":0,"admission":{"schedule":"allow","event":"allow","listener":"allow","webchat":"allow","issues":"allow","workspace":"allow","workflow":"allow"},"actionRules":{"src/app.ts":"allow","README.md":"hold"},"commandJudge":"off","projectInstalls":"automatic","subagentsAtOnce":20,"subagentsPerTurn":200,"subagentDepth":3}'
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.set({
 "timezone": "",
 "stableSystemPrompt": false,
 "skills": [
 "…",
 "…"
 ],
 "personaRouting": true,
 "hashlineEdits": false,
 "systemPromptMode": "intentic",
 "systemPrompt": "",
 "leanGuidance": false,
 "leanGuidanceHoldout": 0,
 "toolResultClearing": false,
 "toolResultClearingHoldout": 0.5,
 "iqSearch": false,
 "iqSearchHoldout": 0,
 "workspaceMap": false,
 "workspaceMapHoldout": 0,
 "fieldNotes": false,
 "fieldNotesBudget": 4000,
 "fieldNotesHoldout": 0,
 "outputCleaners": "",
 "outputHoldout": 0,
 "modelRoles": {
 "src/app.ts": [
 {
 "provider": "claude",
 "model": "claude-sonnet-4-6",
 "effort": "…",
 "thinking": true,
 "fast": true,
 "harness": "native"
 },
 {
 "provider": "claude",
 "model": "claude-haiku-4-6",
 "effort": "…",
 "thinking": true,
 "fast": true,
 "harness": "claude-code"
 }
 ],
 "README.md": [
 {
 "provider": "claude",
 "model": "claude-sonnet-4-6",
 "effort": "…",
 "thinking": true,
 "fast": true,
 "harness": "native"
 },
 {
 "provider": "claude",
 "model": "claude-haiku-4-6",
 "effort": "…",
 "thinking": true,
 "fast": true,
 "harness": "claude-code"
 }
 ]
 },
 "autoModelGuidance": "",
 "changelogRepos": [
 "…",
 "…"
 ],
 "agentRetentionDays": 3,
 "limitPolicy": "wait",
 "outagePolicy": "wait",
 "stopPolicy": "wait",
 "limitMoveCarryUnder": 100000,
 "keepWarm": {
 "auto": false,
 "hours": 4,
 "minTokens": 100000,
 "reserve": 15
 },
 "autoRepair": true,
 "followOrigin": true,
 "offload": {
 "commands": {
 "src/app.ts": "…",
 "README.md": "…"
 }
 },
 "continueWhenNeedMet": true,
 "autoResumeOnRestart": false,
 "adoptedChecks": {
 "src/app.ts": "…",
 "README.md": "…"
 },
 "rules": [
 {
 "id": "a1b2c3d4",
 "label": "Nightly changelog",
 "moment": "file.edited",
 "when": {
 "repo": "root",
 "paths": [
 "src/app.ts",
 "README.md"
 ],
 "outcome": [
 "clean",
 "error"
 ],
 "sample": 1
 },
 "action": {
 "kind": "command",
 "command": "pnpm dev",
 "timeoutMs": 900000
 },
 "enabled": true
 },
 {
 "id": "e5f6a7b8",
 "label": "Release notes",
 "moment": "turn.ending",
 "when": {
 "repo": "site",
 "paths": [
 "src/app.ts",
 "README.md"
 ],
 "outcome": [
 "clean",
 "error"
 ],
 "sample": 1
 },
 "action": {
 "kind": "command",
 "command": "pnpm build",
 "timeoutMs": 900000
 },
 "enabled": true
 }
 ],
 "automationFailureLimit": 0,
 "admission": {
 "schedule": "allow",
 "event": "allow",
 "listener": "allow",
 "webchat": "allow",
 "issues": "allow",
 "workspace": "allow",
 "workflow": "allow"
 },
 "actionRules": {
 "src/app.ts": "allow",
 "README.md": "hold"
 },
 "commandJudge": "off",
 "projectInstalls": "automatic",
 "subagentsAtOnce": 20,
 "subagentsPerTurn": 200,
 "subagentDepth": 3
});
```

**GET`/settings/savings` What the token-saving measures were worth**

Measured rather than estimated: what each mechanism actually saved over a range of days. The same day range the spending ledger takes, so one calendar filters both.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `from` First day to include, as YYYY-MM-DD… | string | query |
| `to` Last day to include, as YYYY-MM-DD… | string | query |

### What comes back

| Field | Type |
| --- | --- |
| `input` | object |
| `updatedAt` | number |
| `commands` | number |
| `rawTokens` | number |
| `emittedTokens` | number |
| `savedPct` | number |
| `perCleaner` | object[] |
| `id` | string |
| `commands` | number |
| `savedTokens` | number |
| `holdout` | object |
| `cleaned` | number |
| `heldOut` | number |
| `measuredSavedPct` | number |
| `gaps` | object[] |
| `command` | string |
| `commands` | number |
| `tokens` | number |
| `search` | object |
| `metrics` | object[] |
| `metric` | "searchCalls" | "openingSearches" | "openingListings" | "callsBeforeTarget" … (7) |
| `on` | object |
| `turns` | number |
| `mean` | number |
| `off` | object |
| `turns` | number |
| `mean` | number |
| `controlTurnsNeeded` | number |
| `marginPct` | number |
| `deltaPct` | number |
| `saved` | number |
| `minTurns` | number |
| `sampleUnit` | "turns" | "conversations" | "opening turns" |
| `cohort` | string |
| `map` | object |
| `metrics` | object[] |
| `metric` | "searchCalls" | "openingSearches" | "openingListings" | "callsBeforeTarget" … (7) |
| `on` | object |
| `turns` | number |
| `mean` | number |
| `off` | object |
| `turns` | number |
| `mean` | number |
| `controlTurnsNeeded` | number |
| `marginPct` | number |
| `deltaPct` | number |
| `saved` | number |
| `minTurns` | number |
| `sampleUnit` | "turns" | "conversations" | "opening turns" |
| `cohort` | string |
| `notes` | object |
| `metrics` | object[] |
| `metric` | "searchCalls" | "openingSearches" | "openingListings" | "callsBeforeTarget" … (7) |
| `on` | object |
| `turns` | number |
| `mean` | number |
| `off` | object |
| `turns` | number |
| `mean` | number |
| `controlTurnsNeeded` | number |
| `marginPct` | number |
| `deltaPct` | number |
| `saved` | number |
| `minTurns` | number |
| `sampleUnit` | "turns" | "conversations" | "opening turns" |
| `cohort` | string |
| `guidance` | object |
| `metrics` | object[] |
| `metric` | "searchCalls" | "openingSearches" | "openingListings" | "callsBeforeTarget" … (7) |
| `on` | object |
| `turns` | number |
| `mean` | number |
| `off` | object |
| `turns` | number |
| `mean` | number |
| `controlTurnsNeeded` | number |
| `marginPct` | number |
| `deltaPct` | number |
| `saved` | number |
| `minTurns` | number |
| `sampleUnit` | "turns" | "conversations" | "opening turns" |
| `cohort` | string |
| `clearing` | object |
| `metrics` | object[] |
| `metric` | "searchCalls" | "openingSearches" | "openingListings" | "callsBeforeTarget" … (7) |
| `on` | object |
| `turns` | number |
| `mean` | number |
| `off` | object |
| `turns` | number |
| `mean` | number |
| `controlTurnsNeeded` | number |
| `marginPct` | number |
| `deltaPct` | number |
| `saved` | number |
| `minTurns` | number |
| `sampleUnit` | "turns" | "conversations" | "opening turns" |
| `cohort` | string |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/settings/savings" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.savings();
```

**GET`/settings/system-prompt/{base}` Read a built-in system prompt**

The actual text behind one of the built-in modes, so a settings screen can show the prompt instead of asking anyone to trust a description of it, and so either can be forked into a custom one.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `base` required | "intentic" | "claude" | address |

### What comes back

| Field | Type |
| --- | --- |
| `text` | string |
| `version` | string |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/settings/system-prompt/intentic" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.builtinPrompt({
 "base": "intentic"
});
```

**GET`/settings/rule-firings` When each rule last did something**

A separate read rather than a field on the settings, because a rule firing is not somebody editing anything: folding it in would turn every firing into a settings write and put a self-changing value inside the object a screen edits.

### What you send

Nothing. Call it as it is.

### What comes back

A plain value rather than an object. The example below is the whole of it.

Try it answered in this tab

curl

```bash
curl "$SANDBOX/settings/rule-firings" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.firings();
```

**GET`/settings/repo-checks` What each repository asks to run on its own code**

Every repository that declares its own checks at `.intentic/checks.json`, what it declares, and whether you have switched it on. A repository declares what to run because the command belongs beside the scripts it names; nothing it declares runs until you say so.

### What you send

Nothing. Call it as it is.

### What comes back

| Field | Type |
| --- | --- |
| `repos` Every repository that declares checks, in… | object[] |
| `repo` Which repository, by its workspace id… | string |
| `path` Where the declaration lives, relative to… | string |
| `checks` What it declares, in the order… | object[] |
| `when` When to run it: `edit` on… | "edit" | "turn" | "land" |
| `run` The command, run in this repository's… | string |
| `label` What to call it on screen | string |
| `timeoutMs` How long it may take before… | number |
| `paths` Only run it when the change… | string[] |
| `fired` When each declared check last reported… | number[] |
| `adopted` Whether these are running | boolean |
| `changed` Whether the declaration changed since it… | boolean |
| `error` Why the file could not be… | string |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/settings/repo-checks" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.repoChecks();
```

**GET`/settings/field-notes` The state of this sandbox's field notes**

Whether `.intentic/config/field-notes.toon` exists, when it was last rewritten, how much of it the current budget reaches, and whether a monthly rewrite is scheduled.

### What you send

Nothing. Call it as it is.

### What comes back

| Field | Type |
| --- | --- |
| `present` | boolean |
| `writtenAt` | number |
| `ranksSent` | number |
| `ranksTotal` | number |
| `chars` | number |
| `automation` | "missing" | "enabled" | "disabled" |
| `nextRunAt` | number |
| `unreadable` | string |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/settings/field-notes" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.fieldNotes();
```

**POST`/settings/timezone` Offer this sandbox a clock, if it has none**

Sets which timezone this sandbox's schedules are meant in, but only while it has none set. Already answered, the stored zone wins and comes back unchanged, so any number of browsers can offer theirs without fighting over it. To change a zone that is already set, write the settings.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `timezone` required The zone the offering machine is… | string | body |

### What comes back

| Field | Type |
| --- | --- |
| `timezone` The zone this sandbox's schedules are… | string |
| `adopted` Whether this call is what set… | boolean |

Try it answered in this tab

curl

```bash
curl -X POST "$SANDBOX/settings/timezone" \
 -H "x-intentic-control: $INTENTIC_TOKEN" \
 -H "content-type: application/json" \
 -d '{"timezone":"…"}'
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.adoptTimezone({
 "timezone": "…"
});
```

**GET`/settings/audience` Which words the editor uses for you here**

Whether your editor speaks git's own words (developer) or plain ones (maker) on this sandbox, in every browser and on every device. Absent until you have chosen here.

### What you send

Nothing. Call it as it is.

### What comes back

| Field | Type |
| --- | --- |
| `audience` developer for git's own words, maker… | "developer" | "maker" |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/settings/audience" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.audience();
```

**POST`/settings/audience` Choose which words the editor uses for you here**

Sets whether your editor speaks git's own words (developer) or plain ones (maker) on this sandbox, for every browser and device you open it on. Other members keep their own. With `offer` it is taken only while you have none kept, and the kept answer comes back unchanged.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `audience` required developer for git's own words, maker… | "developer" | "maker" | body |
| `offer` Take it only while this person… | boolean | body |

### What comes back

| Field | Type |
| --- | --- |
| `audience` The words this sandbox's editor now… | "developer" | "maker" |
| `adopted` Whether this call set it | boolean |

Try it answered in this tab

curl

```bash
curl -X POST "$SANDBOX/settings/audience" \
 -H "x-intentic-control: $INTENTIC_TOKEN" \
 -H "content-type: application/json" \
 -d '{"audience":"developer","offer":true}'
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.setAudience({
 "audience": "developer",
 "offer": true
});
```

**POST`/settings/repo-checks/adopt` Switch a repository's own checks on or off**

Adopts exactly what that repository declares as it stands now. If the declaration changes afterwards it stops running until you adopt it again, so a command nobody has read cannot inherit the answer given to a different one.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `repo` required Which repository's declaration to switch | string | body |
| `on` required On adopts what it declares as… | boolean | body |

### What comes back

| Field | Type |
| --- | --- |
| `ok` Always true | true |

Try it answered in this tab

curl

```bash
curl -X POST "$SANDBOX/settings/repo-checks/adopt" \
 -H "x-intentic-control: $INTENTIC_TOKEN" \
 -H "content-type: application/json" \
 -d '{"repo":"root","on":true}'
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.settings.adoptRepoChecks({
 "repo": "root",
 "on": true
});
```

More in Agent setup

[Previous ← Extensions](https://intentic.dev/api/extensions/)[Next Safety policy →](https://intentic.dev/api/safety/)
