DiscoveryServicesHow We WorkPlatformSolutionsInsightsDocsStart with the Map
Docs/Runtime/Installing ProxyCore

Installing ProxyCore

ProxyCore ships as a Rust workspace. Two binaries matter for most work: proxyweb, the web runtime that serves a ProxyLang file, and proxy, the CLI for driving and inspecting definitions. This guide builds them and covers configuration.

Preview — early access

ProxyCore is in preview and active dogfooding, distributed as source rather than a published package. These steps assume early-access to the workspace — request access if you need it.

Prerequisites

  • A recent stable Rust toolchain via rustup.
  • The ProxyCore workspace (preview).
  • Optional: SQLite for data-backed apps; an OpenAI-compatible model server (e.g. LM Studio) for agents/LLM steps.

Build

terminalshell
git clone <proxycore-workspace> proxycore
cd proxycore
cargo build              # whole workspace
cargo build -p proxyweb  # just the web runtime

Run the web runtime

Point proxyweb at a .pxy. With no argument it serves a bundled demo. It listens on 127.0.0.1:3200 by default.

terminalshell
cargo run -p proxyweb -- examples/site.pxy
#  proxyweb listening on http://127.0.0.1:3200

# data-backed app
PROXYWEB_DB=sqlite://app.db cargo run -p proxyweb -- app.pxy

# optional features
cargo run -p proxyweb --features http -- shop.pxy   # real Stripe checkout
cargo run -p proxyweb --features llm  -- crm.pxy    # real LLM provider

Use the CLI

The proxy CLI works with definitions directly — describe and drive a state machine, or produce an evidence/audit trail.

terminalshell
proxy machine examples/charge_station.pxy                        # describe it
proxy machine examples/charge_station.pxy --event "plug connects"  # fire an event

Configuration

Behavior is set with environment variables at launch:

PROXYWEB_PORTListen port (default 3200).
PROXYWEB_HOSTBind address (default 127.0.0.1). A non-loopback bind is refused unless TLS is on or PROXYWEB_ALLOW_INSECURE=1 is set.
PROXYWEB_DBDatabase URL, e.g. sqlite://app.db — enables schema/queries/mutations.
PROXYWEB_STATEDirectory for durable state (orders, machine snapshots, audit).
WORKER_TOKENBearer token required on privileged endpoints; a weak/default value is refused at startup.
PROXYWEB_LLMSelects the LLM provider for agents/LLM steps (e.g. lmstudio); needs --features llm.
PROXYWEB_STATE_KEY64-hex AES-256 key — encrypts the on-disk state store at rest.
PROXYWEB_AUDIT_KEY64-hex Ed25519 seed — signs tamper-resistant audit checkpoints.
PROXYWEB_TLS_CERT / _KEYPEM paths for in-binary HTTPS (build with --features tls).

Production posture

For anything beyond local use, do not serve cleartext on a public interface. Either build with --features tls and set PROXYWEB_TLS_CERT/PROXYWEB_TLS_KEY, or terminate TLS at a reverse proxy and bind loopback. Set a strong WORKER_TOKEN, and turn on encryption at rest (PROXYWEB_STATE_KEY) and signed audit checkpoints (PROXYWEB_AUDIT_KEY). See the security model for the full posture and its honest limits.

Preview — not yet multi-tenant SaaS

ProxyCore is not offered as a hosted multi-tenant service today, and we do not describe it as "governed" or "tamper-proof" — those are goals with open work behind them. If you are evaluating it for real work, tell us the constraint.

Related