Configure Teambook Desktop

Use teambook open to create or open project-scoped notebooks, teambook model to manage runnable model configuration and defaults, teambook auth to manage provider OAuth and API-key credentials, teambook catalog to inspect the managed TOML registry projection, teambook workspace to manage the global Desktop Workspace connection, teambook project to inspect or change the current directory's Workspace scope, and teambook config to manage reusable resources and MCP servers.

Local models and resources may be global or project-scoped. Project entries take precedence; built-in and managed resources are visible but read-only. Connected Workspace-wide or linked-project models, prompts, and subagents are also visible as read-only entries.

Model execution is available through notebooks and one-off `teambook cell run` invocations. Create or open a notebook with teambook open PATH, configure its model through teambook model and teambook auth, add an LLM cell, and run it explicitly in Teambook Desktop. For scripted authoring, teambook notebook cell add PATH --type llm --input-json '{"prompt":"hello"}' adds a draft but does not execute it.

A new notebook uses the usable Desktop default model selected by the effective configuration; the notebook runtime does not special-case a provider or model ID.

Directory scope changes take effect after affected notebooks are reopened. Model and config prompt|subagent|skill|renderer deletes and workspace disconnect prompt for confirmation unless you pass --yes; tool definitions, cell definitions, and notebook cells are deleted immediately.

Templates, first-party local-tool policy, generic command tools, and MCP creation/editing/project-parity or OAuth/tool-inventory/allowlist redesign are outside this resource lifecycle. The MCP section below documents the existing global server workflow.

Global Workspace connection

Inspect, establish, or remove the Desktop-wide Workspace connection independently from directory project links.

teambook workspace status

show persisted connection details and validate availability

teambook workspace connect <url>

connect through the Workspace device authorization flow

teambook workspace disconnect [--yes]

forget the global connection and delete its native credential

Important behavior

Local project and Workspace link

Inspect the current directory's effective Workspace resource scope, initialize project configuration, or link it to one Workspace project.

teambook project init

initialize .teambook/project.json

teambook project link <workspace-project>

link by Workspace project id or unique exact name

teambook project status

show config validity, connection, effective scope, and catalog availability

teambook project resources [--json]

list every resource a notebook opened here will see, with origins

teambook project refresh

fetch the effective Workspace-wide or linked-project catalog

teambook project unlink [--yes]

remove the link without deleting local or Workspace resources

Important behavior

Opening notebooks from the terminal

Create or open a project-scoped .tb notebook in Teambook Desktop.

teambook open [PATH]

open a notebook, creating it when needed

Important behavior

Runnable models

Install runnable model definitions and choose global or project defaults independently from provider authentication.

teambook model list

list effective models and their origin

teambook model show <id>

inspect runnable model configuration without displaying credential values

teambook model add <model.toml> [--project] [--default] [--allow-http-execution]

validate and install a model

teambook model update <id> --from <model.toml> [--project] [--default] [--allow-http-execution]

atomically replace a user-owned model

teambook model default <id> [--project]

choose the default from the effective model catalog

teambook model creator <id> [--project] | creator --clear [--project]

choose or clear the separate notebook cell creator model

teambook model delete <id> [--project] [--yes] [--replacement <id>]

delete model configuration while retaining credentials

Portable model source

[provider]
name = "Acme AI"
api_base_url = "https://api.acme.example/v1"
client_type = "openai_responses"
api_key_env = "ACME_API_KEY"

[model]
name = "Acme Agent"
external_id = "agent-v1"
provider = "acme"

[[model.capabilities]]
name = "tools"
label = "Include tools"
type = "boolean"
default = { value = false }

Important behavior

Provider authentication

Connect OAuth-backed providers and manage native API-key credentials without displaying secret values.

teambook auth login openai

connect a local ChatGPT subscription and refresh the managed model catalog

teambook auth status openai [--json]

report local ChatGPT connection status without displaying credentials

teambook auth logout openai

remove the local ChatGPT credential while retaining the managed catalog cache

teambook auth key set [--project] [--stdin] <model-or-provider>

securely store or replace an API key

teambook auth key status [--project] <model-or-provider>

report API-key presence and source

teambook auth key delete [--project] [--yes] <model-or-provider>

delete a native API-key credential after confirmation

Important behavior

Managed model registry

Refresh and inspect the read-only Teambook-managed ChatGPT subscription model layer.

teambook catalog sync

force a TOML registry refresh while retaining the last valid cache on failure

teambook catalog status

show model count, freshness, origin, and the last refresh error

teambook catalog status --json

print managed registry diagnostics as JSON

Important behavior

Pre-defined cells

Add and manage YAML definitions for reusable notebook cells.

teambook config cell add <yaml-file> [--scope=global|project] [--force]

validate and add a YAML cell definition

teambook config cell list [--scope=global|project]

list installed pre-defined cell definitions

teambook config cell show <key> [--scope=global|project]

inspect an installed pre-defined cell definition

teambook config cell delete <key> [--scope=global|project]

delete an installed pre-defined cell definition

cell.yaml source

version: 1
key: example
name: Example
description: Run an example command.
installation: |-
  Install the tools and credentials required by this definition.
spec:
  form:
    fields:
      - name: value
        label: Value
        control: text
  cells:
    - key: run
      type: llm
      input:
        src: "Explain {{value}} with a short example."
      settings:
        model_id: openai/gpt-5.6-luna
        output_schema:
          type: object
          properties:
            lesson: {type: string}
          required: [lesson]
        hooks:
          on_success:
            - kind: javascript
              code: |
                export function run(event) {
                  if (!event.value?.lesson) throw new Error("lesson is required");
                  return {...event.value, reviewed: true};
                }
            - {kind: store.append, namespace: grammar_log, source: current}
            - {kind: file.write, path: "data/lessons/{{$today}}-{{value}}.json", source: current}
usage: |-
  # Example

  Explain when to use this cell, what good input looks like, and how to interpret its output.

Important behavior

Run one cell

Execute one independent cell or reusable workflow from the terminal without creating a notebook. The invocation uses the selected local/project configuration and the same execution and permission behavior as Desktop.

teambook cell run --type TYPE --request FILE [--cwd DIR] [--dataset-config KEY] [--json] [--output FILE] [--non-interactive] [--verbose]

run a built-in LLM, Terminal, JavaScript, API, or Query cell

teambook cell run --definition KEY [--request FILE | --text TEXT | --stdin] [same options]

run an installed reusable definition

teambook cell run TARGET [--request FILE | --text TEXT | --stdin] [same options]

run a YAML source or installed cell (file paths take precedence over installed names)

Version 1 request example

{
  "version": 1,
  "values": {"question": "Summarize this fixture"},
  "form_files": {"trip_index": "fixtures/trips.csv"}
}

Important behavior

Web tools

Add GET-only HTTP tool definitions and manage their OS-keychain secrets.

teambook config tool add <tool.json> [--force]

validate and add a web-service tool definition

teambook config tool list

list installed web tools and credential status

teambook config tool delete <key>

delete an installed web tool definition

teambook config tool secret set <SECRET_KEY>

securely store or replace a web-tool secret

teambook config tool secret delete <SECRET_KEY>

delete a web-tool secret

Example definition

{
  "key": "fetch_url",
  "name": "fetch_url",
  "description": "Fetches a markdown rendering of a web page. Use whenever asked about the content at a URL.",
  "parameters": {
    "type": "object",
    "properties": {
      "url": { "type": "string", "description": "The URL of the page to fetch" }
    },
    "required": ["url"]
  },
  "request": {
    "url_template": "https://r.jina.ai/{{raw:url}}",
    "headers": [{ "name": "Accept", "value": "text/plain" }],
    "auth": { "type": "bearer", "secret": "JINA_READER_API_KEY" }
  },
  "response": { "max_bytes": 1048576 },
  "settings": { "timeout_seconds": 30 },
  "confirmation_mode": "never"
}

Important behavior

Named workflow credentials

Reuse API-stage credentials by name across environment, local project, machine, and the connected Workspace. Secret values stay in native storage or the Workspace and are read only for authorized execution.

teambook config secret set NAME [--scope machine|project]

read a hidden prompt or one stdin line into the OS credential store

teambook config secret status NAME [--scope env|project|machine|org]

report the selected scope and usability without printing the value

teambook config secret delete NAME [--scope machine|project]

remove the named local credential

API-stage requirement

auth:
  type: api_key_header
  header: Authorization
  value: "{{ secrets.DEEPGRAM_AUTHORIZATION }}"

Important behavior

Remote file locations

Configure S3-compatible buckets that notebooks read files from by name.

teambook config remote add <remote.json> [--scope=global|project] [--force]

validate and add a remote object-store location

teambook config remote list [--scope=global|project]

list configured locations and credential status

teambook config remote delete <key> [--scope=global|project]

delete a configured remote location

teambook config remote secret set <SECRET_KEY>

store a secret access key in the credential store

teambook config remote secret delete <SECRET_KEY>

delete a stored secret access key

Location definition source

{
  "key": "team-files",
  "label": "Team files",
  "provider": "s3",
  "bucket": "example-team-files",
  "endpoint": "https://0123456789abcdef0123456789abcdef.r2.cloudflarestorage.com",
  "region": "auto",
  "prefix": "shared/",
  "virtual_hosted_style": false,
  "auth": {
    "type": "access_key",
    "access_key_id": "EXAMPLE_ACCESS_KEY_ID",
    "secret": "TEAM_FILES_SECRET_ACCESS_KEY"
  }
}

Important behavior

Notebook dataset configurations

Install a portable SQL-domain definition and bind it to an external ADBC driver.

teambook config dataset add <dataset.yaml> [--scope=global|project] [--driver-library PATH] [--driver-entrypoint SYMBOL] [--force]

validate, bind, verify, and install a dataset configuration

teambook config dataset list [--scope=global|project]

list dataset definitions and local verification status

teambook config dataset verify <key> [--scope=global|project]

re-run bounded dataset and driver verification

teambook config dataset delete <key> [--scope=global|project]

remove a definition and its machine-local binding

dataset.yaml source

version: 1
key: duckdb-local
name: Local DuckDB
description: Analyze attached datasets with an installed DuckDB.
engine: duckdb
engine_version: ">=1.5.0 <1.6.0"
driver: duckdb
entrypoint: duckdb_adbc_init
mode: local_attachments
profile: duckdb-attachments-v1
requires:
  parameter_binding: true
  native_formats: [csv, tsv, parquet, ndjson]
guidance: |-
  Use DuckDB SQL for the tables in the supplied catalog.

Important behavior

Prompts

Create reusable system prompts that appear in the desktop prompt picker.

teambook config prompt list

list effective prompts and their origin

teambook config prompt show <id>

inspect one effective prompt

teambook config prompt add <prompt.toml> [--project] [--force]

validate and install a complete prompt source

teambook config prompt update <id> --from <prompt.toml> [--project] [--force]

atomically replace a user-owned prompt

teambook config prompt delete <id> [--project] [--yes]

delete a user-owned prompt

Prompt source

[prompt]
id = "brief"
name = "Brief"
content = "Summarize the request and recommend the next action."

Important behavior

Subagents

Define reusable worker roles with optional model overrides and execution options.

teambook config subagent list

list effective subagents and their origin

teambook config subagent show <id>

inspect one effective subagent

teambook config subagent add <subagent.toml> [--project] [--force]

validate and install a complete subagent source

teambook config subagent update <id> --from <subagent.toml> [--project] [--force]

atomically replace a user-owned subagent

teambook config subagent delete <id> [--project] [--yes]

delete a user-owned subagent

Subagent source

[subagent]
id = "reviewer"
name = "Reviewer"
description = "Reviews a proposed change"
model = "acme/agent-v1"
system_prompt = "Review carefully and report actionable findings."

[subagent.options]
temperature = 0.1

Important behavior

Agent Skills

Install complete Agent Skills directories containing SKILL.md plus optional scripts, references, and assets.

teambook config skill list

list effective skills and their origin

teambook config skill show <name>

inspect one effective skill

teambook config skill add <skill-directory> [--project]

validate and install a complete Agent Skill

teambook config skill update <name> --from <skill-directory> [--project]

atomically replace a user-owned skill directory

teambook config skill delete <name> [--project] [--yes]

delete a user-owned skill

SKILL.md inside a matching directory

---
name: review-helper
description: Review a proposed change using the team checklist
license: MIT
---

Read `references/checklist.md`, inspect the proposed change, and report actionable findings.

Important behavior

Renderers

Install trusted web-component modules that render structured notebook responses.

teambook config renderer list

list effective renderers and their origin

teambook config renderer show <key> [--global|--project]

inspect the effective renderer or one explicit scope

teambook config renderer add <renderer.toml> [--project]

validate and install a complete renderer source

teambook config renderer update <key> --from <renderer.toml> [--project]

atomically replace a user-owned renderer

teambook config renderer delete <key> [--project] [--yes]

delete a user-owned renderer

Local renderer source

[renderer]
key = "orgchart"
label = "Org Chart"
content_type = "application/vnd.acme.orgchart+json"
custom_element_tag = "acme-orgchart"
custom_classes = "orgchart"
output_instruction = "Emit an org-chart JSON object without a Markdown fence."

[renderer.script]
path = "./orgchart.js"

Important behavior

MCP servers

Configure local or remote MCP servers, connect OAuth servers, inspect their tools, and explicitly choose which tools runs may use.

teambook config mcp list

show configured MCP servers and connection status

teambook config mcp add <key> [--url <url>] [--auth oauth|none]

add a server to the global configuration

teambook config mcp auth <key>

connect an OAuth server in the browser

teambook config mcp tools <key>

refresh and list the server tool inventory

teambook config mcp allow <key> <tool,…|--all>

choose which tools runs may use

teambook config mcp disconnect <key>

revoke and delete stored tokens

teambook config mcp delete <key>

disconnect and remove the server from config

Important behavior