Skip to main content

FastAPI backend for the Minds Cowork desktop app

Project description

Cowork Server

FastAPI backend for the Anton desktop app. Manages projects, conversations, files, scheduling, memory, and agent orchestration with a SQLite-backed data layer.

Quick Start

Requires Python 3.12+ and uv.

# Install and run
uv tool install cowork-server
cowork-server

The server starts on http://127.0.0.1:26866. Confirm with:

curl http://127.0.0.1:26866/api/v1/health/

Development

# Run from source (auto-manages virtualenv + deps)
uv run cowork-server

When running alongside the Electron app in dev mode, the app spawns the server automatically — no manual start needed.

Dev setup helper

uv run cowork-dev-setup

Initializes the database and validates configuration.

Architecture

cowork/
  api/v1/endpoints/   # FastAPI route handlers
  services/           # Business logic
  models/             # SQLModel / DB models
  schemas/            # Pydantic request/response schemas
  db/                 # Database session and migrations
  common/             # Shared utilities, settings
  harnesses/          # Agent adapters (Anton, Hermes, etc.)

The server is designed to be agent-agnostic — core features (projects, conversations, files) are shared across agents, while agent-specific behavior lives in harness adapters. See docs/DESIGN.md for the full architectural rationale.

API

All endpoints live under /api/v1/. Key resource groups:

Path Description
/health Readiness probe
/projects Project CRUD and working-folder management
/conversations Conversation threads and message history
/responses Streaming agent responses (SSE)
/files OpenAI-compatible file uploads
/schedules Recurring task scheduling
/skills Agent skill definitions
/memory Persistent agent memory
/artifacts Agent-produced file previews
/publish Publish HTML artifacts to 4nton.ai
/connectors Third-party service connections and OAuth
/settings User preferences and API keys

Configuration

Configuration is read from the database (UserSettings table) and can be managed through the Settings UI in the desktop app or via PUT /api/v1/settings/.

Environment variables fall into two namespaces:

Server-level (COWORK_*) — control the cowork-server process itself:

Variable Default Description
COWORK_SERVER_PORT 26866 Server port
COWORK_SERVER_HOST 127.0.0.1 Bind address
COWORK_PROJECTS_DIR ~/.cowork/projects Project storage root
COWORK_FILES_DIR ~/.cowork/files Uploaded files root
COWORK_VAULT_DIR ~/.cowork/data-vault Connector credential vault

Harness-level (ANTON_*, HERMES_*) — configure a specific agent harness. These are read by the harness adapter, not by cowork-server core. They use the harness prefix because the upstream agent libraries (anton, hermes-agent) define them:

Variable Harness Description
ANTON_PUBLISH_URL Anton Artifact publish endpoint
ANTON_SKILLS_ROOT_DIR Anton Skill file storage
ANTON_GLOBAL_MEMORY_ROOT_DIR Anton Global memory files
HERMES_HOME / HERMES_ROOT_DIR Hermes Hermes data root

In Docker/Lightsail deployments, the container also receives ANTON_MINDS_API_KEY, ANTON_OPENAI_API_KEY, etc. — these are consumed by the Anton agent library directly (not by cowork-server settings), and are injected by the provisioning lambda via cloud-init user-data.

Docs

License

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cowork_server-0.1.3.tar.gz (454.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cowork_server-0.1.3-py3-none-any.whl (553.5 kB view details)

Uploaded Python 3

File details

Details for the file cowork_server-0.1.3.tar.gz.

File metadata

  • Download URL: cowork_server-0.1.3.tar.gz
  • Upload date:
  • Size: 454.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cowork_server-0.1.3.tar.gz
Algorithm Hash digest
SHA256 82c9ac7b0349963ac321e5e15e2f889a1223e9ea9e7e9383dede3a57d3024ff7
MD5 775db38595e743f298a8ce66974bcf23
BLAKE2b-256 9af5f4478291162e4a071b1d4898e8f9e716bc98c909b14a1a18e966d3f40e7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cowork_server-0.1.3.tar.gz:

Publisher: publish.yml on mindsdb/cowork-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cowork_server-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: cowork_server-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 553.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cowork_server-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c7c6b9fe56f8e09ee04e5d917eda26bcd4513ffbe0d024fd4e59c17062eb9013
MD5 9bae378ee7625a26e60ceb10e5b5b60f
BLAKE2b-256 1e3cf29a44c2061e8be93dd75a0ba7941f3b9c4968b10d92925aafdf15030557

See more details on using hashes here.

Provenance

The following attestation bundles were made for cowork_server-0.1.3-py3-none-any.whl:

Publisher: publish.yml on mindsdb/cowork-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page