Community quickstart

v0.1 developer preview

Prove it locally, then adopt it safely

Start with the local demo, then create a real file after human review. Connect your own JavaScript function or MCP server using the same approval boundary.

01Propose
02Approve
03Inspect evidence

Get the source and start the local demo

Use Node.js 22–24 and Docker Desktop on macOS for the supported guided setup. Git downloads the tagged Community release. The command builds and opens your local gateway; no account or business credentials are needed.

git clone --branch v0.1.1 --depth 1 https://github.com/ActionProxy/actionproxy.git
cd actionproxy
./actionproxy local

Deterministic first run

Prove the control loop without connecting a business system

The bundled Community proof uses deterministic mock tools. It sends no email, changes no customer, needs no SaaS account, and keeps the unauthenticated gateway on loopback.

You will see a read execute, an email-shaped proposal pause for a human decision, and a destructive proposal stop at policy. The labels are realistic; the effects are simulated.

Cold-build time varies with network and host performance. Warm reruns reuse the local Docker cache and retained SQLite volume.

Choose how you want to start

Prove the gateway locally, install one published integration package, or use the source-bound starter in your existing project.

Local

The fastest proof needs no account or runtime credential. It keeps audit evidence in a local SQLite volume across stop and restart.

Prerequisites

  • macOS for the supported v0.1 path
  • Node.js 22–24; Node.js 24 recommended
  • Docker Desktop with Compose

Expected proof

  • docs.search allowed and executed
  • gmail.send_email held for your decision and executed at most once
  • dangerous.delete_customer denied without dispatch
  • local audit hash chain verified
./actionproxy local

ChatGPT

Experimental in v0.1; the mandatory clean-Mac live ChatGPT acceptance is still pending. Start with one command. After you choose I in Terminal or explicitly run the checkout-local install command, the concierge can install an ActionProxy-reviewed, pinned copy of tunnel-client only inside this checkout before connecting the same three local mocks. The browser cannot install software or start processes, and ./actionproxy doctor --chatgpt performs no ActionProxy state mutation or download. Manual installation remains available; ./actionproxy tunnel-client remove removes only an unchanged ActionProxy-managed copy when no launcher is active.

Prerequisites

  • Everything required by the Local journey
  • Eligible ChatGPT developer-mode access
  • Platform Tunnels Read + Use and a workspace-associated tunnel
  • A compatible tunnel-client installed by choosing I, running the explicit checkout-local install command, or following the manual fallback

Expected proof

  • A real tunnel-originated docs.search call reaches the Mac
  • The email call waits up to five minutes for local review
  • One approval causes exactly one simulated execution
  • The destructive call reaches ActionProxy and is denied
./actionproxy chatgpt

Adopt in your project

The JavaScript SDK and MCP wrapper 0.1.1 are published to npm with provenance. Choose the package for your existing function or MCP server. The gateway runs separately from source; no registry container image is published. The source-bound generator remains available as a local-tarball fallback.

Prerequisites

  • A reviewed ActionProxy source checkout kept separate from the consumer project
  • Node.js 22–24; Node.js 24 recommended
  • One chosen boundary: SDK runner, downstream MCP wrapper, or canonical HTTP lifecycle
  • Explicit user authorization before an agent installs packages or changes either project

Expected proof

  • For the source-bound starter: an actionproxy-integration.json descriptor and SHA-256 file hashes
  • Zero downstream dispatch while approval is pending and after denial
  • Exactly one dispatch after approval and exact one-use grant consumption
  • A valid local audit chain with no credential in source, prompts, logs, or browser storage
npm install --save-exact @actionproxy/sdk-js@0.1.1
# For an existing MCP server instead:
npm install --save-exact @actionproxy/mcp-wrapper@0.1.1

# Source-bound alternative from the consumer project:
/absolute/path/to/actionproxy/actionproxy integrate --mode sdk --json
# Alternatives: --mode mcp or --mode http

Connect your first real tool

Keep the gateway running after the demo. Start with a reviewed local file write using the published JavaScript SDK. This creates an actual Markdown file in your temporary directory; it sends no email and needs no provider credentials.

Download the approved-file example (tar.gz), extract it in a separate directory, and open Terminal there. The archive includes the runner, exact npm lockfile, and complete instructions.

Use ./actionproxy status in the gateway checkout to find its current loopback URL. Replace PORT below with that port. Docker chooses the port, so do not assume 8787.

Propose the file and review it

Run these commands in the extracted example directory. The runner prints a review link and waits up to 15 minutes. The file does not exist before approval.

npm ci --ignore-scripts
node approved-file.mjs --gateway http://127.0.0.1:PORT

See the effect, then connect your own function

  1. Open the printed review link and select local.write_note. Inspect the filename and content, then approve the exact proposal.
  2. The runner consumes the grant, creates the real file, and records the result. Open the file at the printed path and inspect Audit in ActionProxy.
  3. Run the command again and reject the new proposal. That second file is never created. If you stop waiting, inspect the printed action and reject any proposal you no longer need.
  4. Replace the bounded file-write section with your existing function. Pass the approved input and keep execution after grant consumption. The example README explains credential ownership, outcome reporting, and avoiding blind retries.
  5. For an existing MCP server, follow the wrapper setup linked below. The optional Gmail draft reference needs OAuth and a test mailbox; it does not govern sending later in Gmail and has separate live acceptance requirements.

Develop from source

Use the Node/Corepack workspace when changing the gateway or web console. This remains supported alongside the Docker concierge.

node --version  # Use Node 22-24; Node 24 recommended.
corepack enable
corepack pnpm install --frozen-lockfile
corepack pnpm dev

# Open http://127.0.0.1:5173/#/demo

Continue after the proof

Inspect the audit trail

Follow proposal, policy, approval, one-use authority, attempt, result, and denial evidence without treating the local chain as independent attestation.

Adjust policy

Change a demo rule and confirm allow, deny, and require-approval behavior remain deterministic.

Review an edit

Edit a supported single-reviewer proposal and inspect the preserved original input plus policy re-evaluation.

Connect your first real tool

Follow the complete local-file recipe above, then connect your own function or existing MCP server. Provider credentials stay in your external runner or downstream MCP server.

Continue exploring

Related product and guide pages