Agent

DocsAgentStudio Binding

Link your local project 1:1 with an Aexol Studio project. After binding, all remote Studio tools auto-inherit project context — no need to pass teamId/projectId on every call.

Studio Binding

The Studio Binding feature creates a 1:1 link between your local project directory and an Aexol Studio project. Once bound, all remote_* tools automatically derive their project context from the binding — no need to pass teamId or projectId on every single call.

How It Works

The Binding File

When you bind a project, the agent writes a .aexol/aexol.jsonc file into your project root:

{
  "teamId": "tm_abc123",
  "projectId": "prj_xyz789",
  "name": "My SaaS App"
}

This file is:

  • Human-readable — JSONC format, you can inspect it
  • Git-friendly — can be committed (or gitignored) based on team preference
  • Auto-discovered — the agent reads it on every tool call

Auto-Injection

When the agent calls any remote_* tool, the Studio MCP extension automatically:

  1. Reads .aexol/aexol.jsonc from the project root
  2. Injects teamId and projectId if not already provided
  3. For inference/refinement tools, also injects the current session model

This means after binding, these work without extra parameters:

// Before binding — must pass projectId on every call:
remote_start_inference {
  aexolContent: "...",
  projectId: "prj_xyz789"  // required
}

// After binding — projectId is auto-injected:
remote_start_inference {
  aexolContent: "..."  // projectId auto-injected from binding
}

Tools

ToolPurpose
local_bind_projectCreate a Studio binding for the current directory
local_unbind_projectRemove the binding from the current directory
local_get_bindingShow the current binding (projectId, teamId, name)

Binding a Project

local_bind_project {
  projectId: "prj_xyz789",       // From Studio project URL
  teamId: "tm_abc123",           // Optional — from Studio team settings
  name: "My SaaS App"            // Optional — human-readable label
}
// → ✓ Bound to Studio project: My SaaS App (prj_xyz789).
// → All remote_* tools will now use this project context by default.

Unbinding

local_unbind_project {}
// → ✓ Unbound from Studio project: My SaaS App (prj_xyz789).

Binding removal is clean — the .aexol/aexol.jsonc file is deleted.

Checking the Binding

local_get_binding {}
// → {
//     "teamId": "tm_abc123",
//     "projectId": "prj_xyz789",
//     "name": "My SaaS App"
//   }

Session Model Injection

For inference and refinement tools (remote_start_inference, remote_start_from, remote_refine_*), the binding also injects the current session model:

// The agent's current model is injected as the inference model
// This ensures Studio tasks use the same model you're chatting with

The model must be a Studio built-in model (prefixed with built-in/). Custom or external models are rejected with a clear error message.

Binding Cache

Bindings are cached in-memory with file modification time tracking. Repeated reads of .aexol/aexol.jsonc within the same millisecond timestamp are served from cache — efficient even with many rapid remote_* calls.

Typical Workflow

  1. Create a Studio project — from the Studio UI or CLI
  2. Copy the project ID — from the project URL: https://studio.aexol.com/projects/prj_xyz789
  3. Bind locallylocal_bind_project { projectId: "prj_xyz789" }
  4. Work naturally — all remote_* tools auto-use the bound project

When to Use

  • Studio integration — any workflow that mixes local agent work with Studio inference, knowledge base, or file operations
  • Team projects — bind once, share the .aexol/aexol.jsonc via git (or keep it local)
  • Multi-project work — switch directories to switch bindings automatically

Next Steps