Tools for agents, inspected

Connect intent
without hiding risk.

ActionMesh is a workflow studio that runs entirely in your browser. Design tool calls, validate payloads against schemas, simulate failures, and inspect every effect - before a single real credential exists anywhere near the run.

9connected studio views
3risk levels, gated separately
0external API calls, ever
100%of the workspace exportable as JSON

How it works

From intent to a trace you can read

Compose before you connect

Build the workflow from the tool catalog: steps, JSON inputs, and a failure mode per step - stop, continue, or retry once. No account is needed to design anything.

Break it on purpose

Contract tests throw fixtures at every tool schema, valid and invalid. Simulation runs the whole plan and records what would have happened, effect by effect.

Gate it, then read the receipts

Policies evaluate least privilege against the plan before a run is allowed. Every simulated effect lands in the run inspector with secrets scrubbed from the logs.

Inside a run

Watch a workflow survive the gate

Three moments from one workflow, exactly as the studio records them: composed, simulated, and stopped at the policy gate. Nothing here is a mock of a mock - each scene mirrors a real view inside the app.

WORKFLOW BUILDERDRAFT
gmail.searchquery: "invoice overdue"
READON FAILURE: STOP
slack.post_messagechannel: #billing
WRITEON FAILURE: RETRY ONCE
drive.delete_filefileId: exports/q2-old.csv
DESTRUCTIVEREQUIRES APPROVAL
TEMPLATE INSTANTIATED
EVERY STEP CARRIES ITS BLAST RADIUS
ACTIONMESH STUDIO - DRAFTPlan: 3 stepsMax risk DESTRUCTIVE - exportable as JSON
RUN #12 - SIMULATION0 EXTERNAL CALLS
gmail.searcheffect: 4 threads matched
PASSED
slack.post_messageeffect: message would post to #billing
RETRIED OK
drive.delete_filewaiting on approval - not simulated
HELD
log: inputs matching token, password, secret, key - scrubbed
AGENT ACTION: SIMULATE
SECRETS NEVER ENTER THE LOG
RUN #12 - JUST NOW3 effects simulated2 passed, 1 held for approval
POLICY: SUPPORT-TRIAGEBLOCKED
Risk ceiling: READVIOLATED BY STEP 2
Toolkits: Gmail, SlackOK
Step budget: ≤ 5OK
Writes need approvalSATISFIED
GATE: LEAST PRIVILEGE
BLOCKED RUNS STILL LEAVE RECEIPTS
POLICY ENGINERun refusedThe failed check names the step and the rule

Tool catalog

Every action wears its risk level

A searchable catalog of tools across everyday toolkits - Gmail, Calendar, Slack, Drive, and more. Each action is labeled Read, Write, or Destructive, with its input schema attached, so the blast radius is visible before a step exists.

Search

Find by name or risk

Filter the catalog by text or by risk level. Looking for everything destructive is one click - which is exactly the point.

Schemas

Inputs are contracts

Every tool ships a JSON schema for its payload. Validation happens against the schema, not against vibes.

Labels

Read, write, destructive

Three levels, displayed everywhere the tool appears - catalog, builder, tests, policies, and traces.

Workflow builder

Compose a safe execution plan

Pick tools, write their input JSON, and choose what happens when a step fails. Templates and an approvals inbox cover the common flows; the plan is data you can inspect, not a black box.

Failure modes

Per-step behavior

Stop the workflow, continue past the failure, or retry once. The choice is explicit and visible on every step.

Templates

Start from a pattern

Common flows like daily issue triage ship as templates you can instantiate, edit, and simulate.

Approvals

Writes wait for a human

Steps that write or destroy can require per-step approval. The approval inbox is part of the run, not an afterthought.

Environments and connections

Tests stay separate from effects

Environments scope what a workflow may touch - simulation, or production-locked with an allowlist of toolkits. Connections record that an account was connected outside the studio; no token is ever seen or stored here, and a step will not simulate until its toolkit has an active, unexpired connection record.

Isolation

Two honest modes

Simulation environments run anything; production-locked environments constrain runs to an explicit toolkit list.

Claimed, not held

Connection records

You record that a Gmail or Slack account was connected elsewhere. The studio sees a claim with an expiry - never a credential.

Expiry

Stale claims block runs

Expired connection records stop the steps that depend on them, and the blocked run leaves a trace.

Contract tests and triggers

Break schemas before users do

Attach fixtures to any tool and declare the expected result - valid or invalid. Run the suite and read the failures. Triggers get the same treatment: build a local subscription for a Gmail, Calendar, or Slack event and test it against sample payloads before subscribing to anything real.

Fixtures

Valid and invalid on purpose

A test pairs a fixture payload with an expectation. The suite reports every mismatch with the tool and fixture named.

Triggers

Events before subscriptions

Filter JSON plus a sample event, evaluated locally. Nothing subscribes to a real source.

Schedules

Cadence, simulated honestly

Daily, weekday, or weekly schedules re-run the current workflow. Nothing fires while the tab is closed; a due-run check catches up and writes real traces.

Run inspector

Every effect leaves a trace

Structured

Step-by-step records

Each simulated run logs every step: the tool, the effect it would have had, approvals, retries, and failures - with inputs matching token, password, secret, or key scrubbed from the log.

Aggregate

Run stats

Totals across runs make drift visible: how many simulations passed, which steps fail most, which tools get used.

Policy engine

Prove least privilege

A policy names the maximum risk level, the allowed toolkits, the maximum step count, and whether writes need per-step approval. Evaluate the current workflow against every policy and read exactly where it fails.

Risk ceiling

Read-only means read-only

A policy capped at Read rejects any workflow containing a write or destructive step. No exceptions, no silent downgrade.

Toolkit allowlist

Named toolkits only

A sandbox that allows Gmail and Slack does not quietly permit Drive. The evaluation says which step violated which rule.

Step budget

Bounded plans

Cap the number of steps a workflow may have. Long chains of effects are a risk surface, and the policy says so.

Local-first

No credential theater

ActionMesh has no server, no account system, and no analytics. No external API call is ever made - the studio proves schemas, approvals, retries, idempotency, and logs before real credentials exist. Workspaces live in local storage, export as JSON, and delete in one click.