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.
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
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.
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.
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.
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
- Core concepts — the primitives the runtime executes.
- ProxyLang getting started
- Security model