How it works

What happens to one request,
from your laptop and back.

Vaultless Guard runs on each developer's machine, between the AI tool and the model provider. Watch the three-minute explainer, or follow one request through it below.

Your agent reads something it shouldn't send

A developer asks Claude Code why a deploy fails. The agent reads .env, runs kubectl get secret and queries three customer rows. Everything it read is now part of the prompt: an AWS key, a database password, a customer's name and email.

The request stops at the machine first

The tool is pointed at the local gateway on 127.0.0.1 with one command (vguard clients configure claude --apply). No proxy in anyone's cloud, no TLS interception, no root, no certificate. The gateway reads every text field of the request: the prompt, files and command output the agent read, tool calls and their results, MCP traffic.

Sensitive values become tokens

Credentials, personal data, internal hosts and your organisation's own terms are replaced with authenticated tokens like [VG1:1a2b3c4d:…]. Each token carries its value encrypted (AES-SIV) under a key that never leaves the machine and is bound to this conversation. There is no database mapping tokens to values, anywhere: that's what vaultless means. Oversized secret dumps are withheld, and content the gateway cannot inspect is refused rather than sent raw.

The provider answers using tokens

The model reasons about [VG1:…] the way it would about any identifier. The request that leaves your laptop, and anything logged on the provider side, holds tokens in place of every value the gateway recognised.

Real values come back, locally

As the answer streams in, the gateway restores the real values on the developer's screen and in the agent's own tool calls, so the next command runs with the real key. Values are never restored into a URL, a link or an HTML attribute.

Every tool call is checked before it runs

With guardrails on, a destructive tool call is stopped before it reaches your shell: rm -rf, terraform destroy, kubectl delete namespace, DROP TABLE, git push --force, reading SSH keys or cloud credentials, installing persistence. The agent sees why and can propose a safer path.

A content-free record

Each turn writes a hash-chained audit line: counts and categories, never content. Edit one line and vguard audit verify shows where the chain broke.

What leaves your machine

ToWhat
Your AI providerthe request, with tokens in place of every value the gateway recognised
Your console (optional)daily counts per data class and outcome, versions, health, self-test results, latency percentiles, the audit chain's head hash
Usnothing, unless you use our hosted console, and then only the items above plus the accounts of the people who sign in to it

vguard org telemetry prints the exact console payload on any machine.

Your first ten minutes

The path from a trial code to the first protected request.

In the console

  • Redeem your trial code at /signup and set a password (turn on MFA straight away)
  • Run vguard org init on an administrator's machine and paste the organisation's public key
  • Create an enrolment: the console shows a one-line install for each machine
  • Optional: connect SSO, invite approvers, publish your first organisation rule

On each developer machine

curl -fsSLo vguard-install.sh https://vguard.techmek.io/install.sh
VGUARD_BUNDLE='vgb1.…' sh vguard-install.sh   # from your enrolment
vguard clients configure claude --apply       # or: codex
vguard guardrails status                      # then turn them on (below)
vguard prove                                   # see what the provider would receive

Turn guardrails on with guardrails: {enabled: true} in the policy (or an organisation-managed policy); the strict profile has them on. Undo routing any time with vguard clients configure claude --rollback. Fleets: push a managed profile with Jamf, Kandji or Intune.

Performance, measured live

On a long multi-agent Claude Code session (macOS, Apple Silicon), the gateway added 279 ms per turn at the median, about 4% of the turn, and 722 ms at p95. Repeated history is cached, and prompt caching keeps working because tokens are stable within a conversation.

What it doesn't do

  • It is not a sandbox: without egress restrictions an agent's shell can still reach the network.
  • Detection won't catch every paraphrase or deliberately disguised value; vguard prove measures where you stand.
  • Browser chat apps and tools without a configurable endpoint (for example Cursor) aren't routed; vguard inventory reports them.