Metadata-Version: 2.5
Name: hawser-server
Version: 0.1.0
Summary: Hawser control plane: hawserd (API, durable worker, migrations).
Project-URL: Homepage, https://github.com/hawser-ai/hawser-ai
Project-URL: Documentation, https://github.com/hawser-ai/hawser-ai/tree/main/docs
Project-URL: Source, https://github.com/hawser-ai/hawser-ai
Project-URL: Issues, https://github.com/hawser-ai/hawser-ai/issues
Project-URL: Changelog, https://github.com/hawser-ai/hawser-ai/blob/main/CHANGELOG.md
Author: Hawser contributors
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: ai,durable-execution,fastapi,server,workflow
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: argon2-cffi>=23.1
Requires-Dist: boto3>=1.35
Requires-Dist: fastapi>=0.115
Requires-Dist: hawser-ai<0.2,>=0.1.0
Requires-Dist: httpx>=0.27
Requires-Dist: pg8000>=1.31
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: typer>=0.12
Requires-Dist: uvicorn[standard]>=0.30
Description-Content-Type: text/markdown

# hawser-server

`hawserd`: the server for [Hawser](https://pypi.org/project/hawser-ai/). It gives you a REST API,
a web app for running documents and reviewing results, and background workers that resume runs
after a crash. It stores data in Postgres (or SQLite) and S3-compatible storage (or local files).

## Try it

```bash
pip install hawser-server
export OPENROUTER_API_KEY=...     # or ANTHROPIC_API_KEY / OPENAI_API_KEY
hawserd serve --dev
```

`--dev` uses SQLite and a local folder, runs a worker in the same process and prints an API key.
Then:

- **Web app:** http://127.0.0.1:8080/app (sign in with the printed key)
- **API docs:** http://127.0.0.1:8080/docs
- **CLI and SDK:** run the two `export` lines it prints; `hawser` commands and `hawser.run()`
  then use the server.

`--dev` is for trying things out on your own machine. Don't expose it to a network.

## Run it for real

```bash
hawserd migrate                                  # create or upgrade the database
hawserd admin create-tenant acme                 # prints the tenant id
hawserd admin create-key --tenant ten_... --name ci   # prints the API key once
hawserd serve                                    # the API and web app
hawserd worker                                   # run one or more workers
```

Configuration, Docker Compose, deployment and backups:
https://github.com/hawser-ai/hawser-ai/tree/main/docs/operator
