Skip to main content

Archway

archway is the lightweight command-line client for an Archway service. It contains no translation engine, analysis engine, or server implementation.

Installation

Install the command into an isolated environment:

pipx install archway

Configuration

Set your personal bearer token:

export ARCHWAY_TOKEN="<personal token>"

The client talks to https://engine.archway-labs.ai unless ARCHWAY_URL (or --server) names another Archway service.

A service can host several engine commits. archway health lists them; without further configuration the service's default engine answers. To use another one, pass --engine <commit> (or set ARCHWAY_ENGINE); a unique prefix of at least 7 hex digits is enough:

archway --engine 27913a47 translate example.py

Each translation records the engine that produced it as engine_sha.

The health check does not require a token:

archway health

Discover the installed client's current commands and agent guidance:

archway --help
archway agent-guide
archway capabilities --format json

Translate one Python file:

archway translate example.py

Specify its dotted module name and write the IR response to a file:

archway translate src/example.py \
  --module-name package.example \
  --output example.ir.json

MCP server

Run a local stdio MCP adapter for agent hosts:

archway mcp serve

The MCP host launches this command as a child process. It exposes capability discovery, service health, and Python translation tools backed by the same configured Archway Engine Service as the CLI. It does not listen on a port or contain the engine itself.

The host must provide ARCHWAY_URL and ARCHWAY_TOKEN to the process. Do not put the token in command arguments or commit it in a host configuration file.

Command output is JSON. Errors are written to standard error and do not include the configured bearer token.

The installed client also provides an offline reference for the exact portable categorical IR revision it supports:

archway ir schema --output portable-ir.schema.json
archway ir guide
archway ir definitions wire_expr
archway ir operations python.call
archway ir search "merge class"

These reference commands do not require ARCHWAY_URL or ARCHWAY_TOKEN. The bundled reference describes revision 9. Translation also works with engines that produce revision 8, which is requested automatically when a selected engine offers nothing newer.

What's new in 0.11.1

The client identifies itself with a User-Agent: archway/<version> header, as the default address requires. The previous default, Python's own, is refused there by an edge bot check.

What's new in 0.11.0

Engine selection (--engine / ARCHWAY_ENGINE), the engine_sha record, support for engines producing revision 8, and the default service address are new in this release.

Portable categorical IR revision 9 is the sole current contract. An f-string replacement field is python.convert_value (only when !s, !r or !a is written) followed by python.format_value, which takes the value and its format spec as inputs. A dynamic spec such as {x:>{width}} is no longer lowered as calls to the program's global format, repr, str and ascii, so rebinding those names no longer changes an f-string's result. Revision 9 retains revision 8's class-scope declarations and revision 7's effectful Python protocol operations.

archway translate example.py

Specify its dotted module name and write the IR response to a file:

archway translate src/example.py \
  --module-name package.example \
  --output example.ir.json

MCP server

Run a local stdio MCP adapter for agent hosts:

archway mcp serve

The MCP host launches this command as a child process. It exposes capability discovery, service health, and Python translation tools backed by the same configured Archway Engine Service as the CLI. It does not listen on a port or contain the engine itself.

The host must provide ARCHWAY_URL and ARCHWAY_TOKEN to the process. Do not put the token in command arguments or commit it in a host configuration file.

Command output is JSON. Errors are written to standard error and do not include the configured bearer token.

The installed client also provides an offline reference for the exact portable categorical IR revision it supports:

archway ir schema --output portable-ir.schema.json
archway ir guide
archway ir definitions wire_expr
archway ir operations python.call
archway ir search "merge class"

These reference commands do not require ARCHWAY_URL or ARCHWAY_TOKEN. The bundled revision-8 contract distinguishes class-body lexical captures from names explicitly declared global; historical revisions require a historical pinned client and service.

What's new in 0.10.0

Portable categorical IR revision 8 is the sole current contract. It makes Python class-scope declarations explicit by distinguishing lexical captures from names declared global. It retains revision 7's effectful Python protocol operations, faithful exception-handler dispatch, completion-flow correlations, and corrected augmented-assignment and ordered call-argument translation semantics.

archway translate example.py
archway ir guide

Use --ir-format python-serde only for a consumer that still requires the legacy Python-specific serialization.

Revisions 3 through 7 are not supported by this release. Historical consumers must use an Archway release pinned to the historical contract they require.

Release files for archway 0.11.1

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

Built distribution (wheel)

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

Release files / archway-0.11.1-py3-none-any.whl

Download URL archway-0.11.1-py3-none-any.whl
Size 32.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d9f769d0ee0c4ce519fedf24014f1d842ed02c8a7abc47f88ce8e509187ce31c
BLAKE2b-256 checksum
How to use checksums
b5dbf328af8eeb4309c5d09b8c473fb621cf981044f712830fe50b47c4c85f58
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 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.11.1 This release

1 release file

0.11.0

1 release file

0.10.0

1 release file

0.9.0

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.0

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