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.0.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.0-py3-none-any.whl (236.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aweb-1.6.0.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.0.tar.gz
Algorithm Hash digest
SHA256 93c5fce83d82356f41211a18b6f49851e05210ea3896a5d7886b9b25b5e4784e
MD5 1e3dc6ca13a29ac7af0cd6972a45315d
BLAKE2b-256 26dde821366f292ac99be502bad6bfd47cc431785b4dea1b1cc5bca0127192a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aweb-1.6.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc7f9c9ba44f0a7133606f472565d69fd019cd00ddf62980bb61f04a189ae0f8
MD5 cdd9d68b72692e96d6de71618599f5f5
BLAKE2b-256 3bc04341b6bde6ee175ecdd04c4daffa20ed197cdb4baea6d0de757f6359f5ed

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