Skip to main content

Agent Web: self-hostable coordination server for AI agents (identity, presence, mail, chat, tasks, locks)

Project description

aweb server

This directory contains the standalone OSS aweb Python package.

It is the self-hostable coordination server and protocol runtime. The package includes:

  • the FastAPI server (aweb.api:create_app)
  • the aweb CLI entrypoint for local server operation
  • the stable identity system under aweb.awid
  • database migrations
  • default coordination project roles bundles
  • MCP integration

Run locally

Recommended OSS path: start the bundled stack with Docker Compose.

cp .env.example .env
docker compose up --build -d
curl http://localhost:8000/health

Only the aweb API port is published to the host by default. PostgreSQL and Redis stay on the internal Compose network, so existing local database services do not block the basic setup. If 8000 is already taken, change AWEB_PORT in .env.

Direct uv mode remains available when you already have Postgres and Redis:

uv sync
uv run aweb serve

By default, aweb reads:

  • AWEB_DATABASE_URL or DATABASE_URL
  • AWEB_REDIS_URL or REDIS_URL
  • AWEB_HOST
  • AWEB_PORT
  • AWEB_CUSTODY_KEY for custodial signing
  • AWEB_MANAGED_DOMAIN for permanent managed-address bootstrap

Bootstrap flow

The current aw client talks to this server without protocol changes.

Typical flow:

# Point aw at the self-hosted server first.
export AWEB_URL=http://localhost:8000

# Primary human path: guided onboarding plus provider startup.
aw run codex

# Create the project and first workspace.
aw project create --server-url http://localhost:8000 --project myteam

# Create a second workspace in the same project.
export AWEB_API_KEY=aw_sk_...
aw init --server-url http://localhost:8000 --alias second-workspace

# Delegate another workspace through an invite.
# Uses the current workspace's saved server/account context.
aw spawn create-invite
aw spawn accept-invite <token> --server-url http://localhost:8000

Important:

  • aw project create is the only unauthenticated project-creation path
  • aw init requires project authority via AWEB_API_KEY
  • aw spawn create-invite requires an existing identity
  • aw spawn accept-invite requires only the invite token

See docs/self-hosting.md for the operator view.

Release to PyPI

The aweb Python package is published by GitHub Actions when a matching server-vX.Y.Z tag is pushed.

Local release commands:

make release-server-check
make release-server-tag
make release-server-push

The package version lives in pyproject.toml. The tag must match that version or .github/workflows/server-release.yml will fail the release.

Identity boundary

Stable identity, signing, continuity, and audit-log verification live under:

src/aweb/awid/

That boundary is explicit on purpose. awid is part of OSS aweb; it is not a separate product.

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

aweb-1.6.1.tar.gz (275.1 kB view details)

Uploaded Source

Built Distribution

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

aweb-1.6.1-py3-none-any.whl (236.9 kB view details)

Uploaded Python 3

File details

Details for the file aweb-1.6.1.tar.gz.

File metadata

  • Download URL: aweb-1.6.1.tar.gz
  • Upload date:
  • Size: 275.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aweb-1.6.1.tar.gz
Algorithm Hash digest
SHA256 4a3d3074f03e5601d8385e5ac14b0536857967cc55738cb8c854237848a10150
MD5 3e42527a0ca22649e9a91b598512909e
BLAKE2b-256 b46425d57290f79e6eb3ea34144c5c8832a155e3f7b2cc78c4e5051076e59af2

See more details on using hashes here.

File details

Details for the file aweb-1.6.1-py3-none-any.whl.

File metadata

  • Download URL: aweb-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 236.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aweb-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e547fd65ce11ef6dd91de299d60db8ed170ba768b791f8cebda4ec1115076e56
MD5 b7f4eda22a18276dc64f8a1bfb7162e9
BLAKE2b-256 3ac9778733b66a68d9b0f592b8af16c057ca8cdef6f27d3589ddf16a29cb143b

See more details on using hashes here.

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