Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Devware

Check that an agent's environment is ready before starting a workload.

Devware checks required environment variables and HTTP health endpoints from a small TOML file. It returns a nonzero exit code when a prerequisite fails, so you can use it in a terminal, a CI job, or a script that starts an agent.

This first alpha is a local readiness checker. It does not provision runtimes, execute agents, manage secrets, or call a hosted Devware API.

Install

Requires Python 3.11 or later. Once this release is published on PyPI:

python -m pip install 'devware==0.1.0a1'

For local development from this source directory:

python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/devware --version

On Windows, virtual-environment executables are in .venv\Scripts.

Configure

devware init

This creates devware.toml and refuses to overwrite an existing file. Edit the example to match the services your workload actually needs:

required_env = ["OPENAI_API_KEY"]

[[services]]
name = "application"
url = "http://127.0.0.1:8000/health"
expected_status = 200

[[services]]
name = "retrieval"
url = "http://127.0.0.1:9000/ready"
expected_status = 204

required_env contains variable names, never their values. A variable passes when it exists and is not empty. The tool reads the current process environment; it does not load .env files. Configure at least one variable or one service. expected_status defaults to 200 and must match exactly. Variable names and service names must be unique within their respective lists.

Check

devware check
devware check --config environments/local.toml --timeout 5
devware check --json

Example human-readable output:

PASS  environment OPENAI_API_KEY: Set
PASS  service application: HTTP 200
FAIL  service retrieval: HTTP 503; expected 204
Not ready. Resolve failed checks before running your workload.

JSON output contains ok and a checks array. Each result includes kind, name, ok, and detail. Configuration errors add an error field and return an empty checks array. Environment values, URLs, and response bodies are not included in reports.

Exit code Meaning
0 All configured checks passed, or init succeeded
1 At least one readiness check failed
2 Invalid arguments/configuration or an unreadable/unwritable file
130 Checks interrupted by the user

Use the result to gate an existing command:

devware check && your-agent-command

HTTP behavior and limits

  • Each configured service receives one GET request. Use health endpoints that are safe to call. Requests run sequentially with no retries.
  • Only HTTP and HTTPS URLs are supported. Embedded username/password credentials and fragments are rejected. Use ASCII or percent-encoded URLs.
  • Redirects are not followed. An HTTP 302 fails unless 302 is explicitly the expected status. TLS certificate verification remains enabled.
  • Responses are checked by status only. Bodies are not read, printed, or parsed.
  • There are no authentication headers, proxy support, or telemetry. Proxy environment variables are not used.
  • --timeout sets the socket timeout per service, from greater than zero to 60 seconds (default: 3). It is not a total run deadline; OS DNS resolution can exceed the socket timeout.
  • Checks show readiness at one point in time. They do not guarantee that an agent will succeed or that the service will remain healthy.

You can also run the CLI with python -m devware.

Development

python3 -m venv .venv
.venv/bin/python -m pip install -e . build twine
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python -m build
.venv/bin/python -m twine check --strict dist/*

Tests use a local HTTP server and synthetic environment variables. They do not call external APIs or require API keys. See RELEASING.md before publishing.

License

MIT. See LICENSE.

Metadata

Release files for devware 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for devware 0.1.0a1
File Size Uploaded
devware-0.1.0a1.tar.gz 12.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for devware 0.1.0a1
File Interpreter ABI Platform
devware-0.1.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 20.4 kB

Release files / devware-0.1.0a1.tar.gz

Download URL devware-0.1.0a1.tar.gz
Size 12.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1785bdb37c2667f326529e5d8337137a7e3263aa8639db6b8ff9290ea5f0fc62
BLAKE2b-256 checksum
How to use checksums
37882349410b26a1ca1ded6084015c6e47bdaabb2d59a37d46bcfc49c2f3332e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.4

Release files / devware-0.1.0a1-py3-none-any.whl

Download URL devware-0.1.0a1-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8804e013a9c871e6b2de6e20ea41505854ee83b13e581b3a162d60dff2d107d
BLAKE2b-256 checksum
How to use checksums
53c8857653089955e4ef80a685240b3fa7875487060808c5bdcd4220c92a9fb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page