Version: Current
Historical release snapshot. These docs are frozen. Read current docs.
studio: the workspace
import StatusPill from ‘../../../components/StatusPill.astro’;
studio is a named tcpsystems suite product for project workspaces and runs.
Current status
Section titled “Current status”- State: live (API answers), measured 2026-11-10.
- Source: single read-only requests from the docs worktree on
2026-11-10T11:43Z:
GET https://studio.tcp.systems/returned200with a JSON service description ("name":"studio","description":"control plane for agent-driven work");GET /readyzreturned200withok;GET /healthzreturned200withok;GET /app/returned302to the Pocket ID sign-in atauth.tcp.systems. - Placement: the suite atlas of 2026-11-06 lists the
studioNomad job on scaleblade (API:9192, UI:9193). The live image then was behind the repository trunk; the running commit was not measured here. studio does not run ondsh, which owner ruling 2026-11-10 removed from the fleet. - Not measured: no signed-in session, run or deployment was exercised.
/versionredirects to sign-in and was not read.
Historical snapshots (not current)
Section titled “Historical snapshots (not current)”- 2026-11-03: suite docs described studio as live with OIDC, workspaces, runs, deploy/preview APIs, and a Svelte UI served by studiod.
- 2026-11-02: owner passkey login was previously recorded as verified.
These snapshots require fresh verification after restoration. A historical note is not evidence of current availability.
Architecture intent (design, not current state)
Section titled “Architecture intent (design, not current state)”The studio repository (github.com/tcpsystems/studio, sibling source) defines the intended service shape. The statements below describe that design. They do not show the deployment matches or runs.
- Service role. A gRPC agent builder service with durable runs, projects, repos, usage, and model discovery. The contract of record is
proto/tcps/studio/v1/studio.proto(studio:proto/tcps/studio/v1/studio.proto:1). - Durable state. Studio owns durable state in PostgreSQL. The README states the durable world is in PostgreSQL, not Vercel (
studio:README.md:3). - Runs. Runs move through statuses such as queued, running, verify, done, and failed (
studio:README.md:20). - Workspaces. The API design includes per project durable git workspaces, leases, patches, tree, and file routes under
/api/workspaces/...(studio:README.md:96). - Realtime. The API design includes
/api/runs, SSE/api/runs/events, and/api/livecontrols with tenant scoping (studio:README.md:103). - UI and auth. The intended UI is a Svelte 5 app on
@tcpsystems/ui, served by studiod. API access uses a Pocket ID session (studio:README.md:14,studio:README.md:96). - Eve integration. Studio routes runs through Eve when configured;
STUDIO_EVE_URLand related settings control that integration (studio:README.md:285).
Treat blueprint or architecture material for studio and stations as intent unless a dated deployment record confirms it.
Operator prerequisites (for restoration)
Section titled “Operator prerequisites (for restoration)”These prerequisites come from the studio service configuration surface. Confirm the unit, paths, and credentials on the target host before use (studio:README.md:269).
- Network binding. gRPC, probe, and UI listeners are loopback only by default (
STUDIO_GRPC_ADDR,STUDIO_HTTP_ADDR,STUDIO_UI_ADDR). Do not relax loopback checks. - Database credential. Set
STUDIO_PG_DSN_FILEto a0400file containing the PostgreSQL DSN. The DSN value must not travel in environment variables or logs. - Workspace and runtime paths. Configure
STUDIO_WORKSPACE_ROOT,STUDIO_DEPLOY_ROOT, andSTUDIO_SANDBOX_ROOTas needed. Routes that need missing roots should answer with an honest unavailable response. - Eve and bridge. Set
STUDIO_EVE_URLandSTUDIO_EVE_TOKEN_FILEif runs should use the Eve runtime (studio:README.md:285). - Authentication. Pocket ID session auth protects the UI and
/api/. Unauthenticated API calls return 401; HTML may redirect to the identity provider.
Restoration and verification checklist
Section titled “Restoration and verification checklist”Use this checklist before changing studio status in docs or status records.
- Confirm deploy target and revision. Record host, unit or process, image or binary revision, and date.
- Check process and probes. Verify loopback gRPC/probe/UI listeners and health endpoints on the host.
- Check dependencies. Verify PostgreSQL DSN file permissions, database reachability, workspace roots, sandbox root, and Eve configuration if enabled.
- Check auth. Verify Pocket ID client configuration and a sign in flow. Record the date and actor role, not credentials.
- Check core API paths. Verify
/api/projects,/api/runs,/api/runs/eventsbehavior, workspace routes, and operator routes in scope. Confirm degraded responses are honest (for example 503 with fallback semantics where documented). - Check status integration. Update status evidence only after independent verification.
- Update docs with dates. Replace the dead status only when a dated verification supports the change.
Related pages
Section titled “Related pages”- tcpsystems suite: estate level surface states.
- auth: Pocket ID: identity provider behavior.
- eve: the runtime: execution layer that studio can route through.
- status: freshness and incidents: component freshness.
- studio runbook: restore, verify, and incident checks.
If a panel reports unavailable, the backend is absent or unconfigured. The
message names which, so you can fix the connection before retrying.
Studio is a row on the status page that expects the
Pocket ID gate: a 302 is up, and a 200 would mean the gate is off. See
that page for the state vocabulary a reader sees during an incident.