GWAY
GWAY is a small Python command-dispatch and composition framework.
It exposes ordinary Python callables as command-line operations, binds CLI arguments to their signatures, carries named context between operations, and lets those operations be composed from the CLI, recipes, or Python.
GWAY provides reusable platform and orchestration behavior while applications keep their own domain logic. A useful boundary is: GWAY follows the platform; applications follow the business.
Quick start
For a one-line released installation, use the public bootstrap:
curl -fsSL https://install.arthexis.com/gway | sh
On the first installation, the bootstrap asks uv to persist its configured tool executable directory for future shells, but the already-open parent shell cannot inherit that PATH change. With the default uv installer you can run source ~/.local/bin/env once; the configuration-independent form is export PATH="$(uv tool dir --bin):$PATH". Opening a new shell also applies successful persisted PATH configuration.
Install GWAY with Python 3.13 or newer:
python3.13 -m pip install gway
Python 3.10 needs the TOML compatibility extra:
python3.10 -m pip install "gway[toml]"
Then run an operation:
gway env PATH
gway help copy
Operations can be composed. A standalone dash passes the previous raw result to the next operation:
producer - consumer
Named values published by operations remain available as semantic context for later operations.
Projects
GWAY follows standard Python project metadata.
The nearest pyproject.toml identifies a project. [project].name gives the project identity, and standard [project.scripts] entries can be exposed as operations.
GWAY infers project behavior from standard metadata wherever possible. GWAY-specific configuration should only be added when standard project metadata cannot express the intent.
Managed installations keep their installation state separately from the source checkout and disposable cache.
See docs/PROJECTS.md for the complete project-discovery contract and every project-level attribute GWAY currently reads.
Recipes
Recipes are small .rx files that compose ordinary GWAY operations:
gway ./recipes/deploy.rx --site MTY
Recipes use the same dispatcher and context model as the CLI. They are intended for readable orchestration rather than as a replacement for Python.
Advanced recipe behavior—including sigils, companion Python files, nested recipes, checks, repeat, rollback journals, reload/process handoff, and execution boundaries—is documented in docs/RECIPES.md.
Logging
GWAY provides one logical logging surface across journald and portable rotating files:
gway log sources
gway log read arthexis --since "10 minutes ago"
gway log tail arthexis/web --limit 50
gway log search "connection refused" arthexis
gway log read --all --limit 100
Journald is used automatically when available. Otherwise GWAY uses structured rotating files. With no source argument, reads remain limited to GWAY-managed sources rather than the entire host journal. See docs/LOGGING.md for the source model, backend behavior, and portable query semantics.
Documentation
docs/PROJECTS.md — project discovery, standard metadata, GWAY variables, and Sous Chef attributes.
docs/RECIPES.md — complete recipe language and execution semantics.
docs/PLATFORM.md — GWAY’s platform/application ownership boundary.
docs/LOGGING.md — unified logging sources, queries, and backend policy.
docs/MCP.md — MCP transport, authorization, token/scope, and deployment model.
docs/README.md — documentation index.
docs/GLOSSARY.md — canonical GWAY terminology.
Development
Install the active checkout with development tools.
With Python 3.13 or newer:
python3.13 -m pip install -e ".[dev]"
With Python 3.10, include the TOML compatibility extra:
python3.10 -m pip install -e ".[dev,toml]"
Run the test and quality suites:
python -m pytest -q
python -m ruff check gway tests
CI exercises the supported Python versions defined by the repository workflows.
License
MIT License.
Metadata
Release files for gway 0.4.66
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gway-0.4.66.tar.gz | 288.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gway-0.4.66-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 602.7 kB
Release files / gway-0.4.66.tar.gz
| Download URL | gway-0.4.66.tar.gz |
|---|---|
| Size | 288.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
80bd83af2b82549cbfee88b3886c25f50558bcfbdfe965d0d395351c0ae37704
|
|
BLAKE2b-256 checksum How to use checksums |
808e105a8154de95168c567593959ddddc59b1d6fb3575a79e49f4a64a3bf35d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / gway-0.4.66-py3-none-any.whl
| Download URL | gway-0.4.66-py3-none-any.whl |
|---|---|
| Size | 314.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86a4c62f5b0490edc961e820d289d65c8deed1a847a8879e44cf08356ca34a5f
|
|
BLAKE2b-256 checksum How to use checksums |
e9c8df02b8c6dd025afd5c09fe426cd2579a1c5b152ff3d71314c4ee3b1c1d71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log