coldpass

Infisical/agent-vault

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works · Linux / Luna: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/Infisical--agent-vault.svg).

agent-harness

Works

The recorded run passed on 2 setups.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyesyes

Linux / Haiku 5.5: yes · Oct 27, 2026 · d5836ec3bb23 · claude-code / 2.1.310 (Claude Code)
Recorded operation: ./agent-vault vault credential get --vault demo-vault ANTHROPIC_API_KEY

Linux / Luna: yes · Oct 27, 2026 · d5836ec3bb23 · codex / codex-cli 0.164.0
Recorded operation: ./agent-vault server --host 0.0.0.0 · local HTTP start + response check

Does what it says
1 of 1 claims checked out
  • Agent Vault provides a self-contained binary that stores credentials locally.: Real input produced the expected result: <title>Agent Vault</title>

    Source: the simpler, self-contained option: a single open-source binary that stores credentials itself and runs entirely on infrastructure you control, with no dependency on any other system.

    Input: GET /

    Expected: The Agent Vault management UI is served.

    Command: ./agent-vault server --host 0.0.0.0

    Observed: <title>Agent Vault</title> <script type="module" crossorigin src="/assets/index-7Li5y8Xo.js"></script> <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-CbXtAM7H.js"> <link rel="modulepreload" crossorigin href="/assets/vendor-react-BicOiEU0.js"> <link rel="modulepreload" crossorigin href="/assets/vendor-router-C3lOAScb.js"> <link rel="stylesheet" crossorigin href="/assets/index-BM3CyTFV.css"> </head> <body> <div id="root"></div> </body> </html>

MCP
No
Local or hosted
local
Local: runs on your machine
Needs keys or browser
None seen
Maintained
Maintained
actively maintained: last commit 4 days ago; 39 commits and 40 merged PRs in 90 days; 38 open issues, 59 open PRs; 3 of 34 recent threads got a maintainer reply, median first reply 2.7h; latest release 2026-10-22

Last commit Oct 22, 2026

Setup time
4 min 45 s
4 min 45 s to a working result
Issue
none found in recorded check
Examples
1 of 1 ran as expected
  • Build frontend and Go binary as documented.: command completed successfully

    Source: README.md / Development

    Input: make build

    Expected: agent-vault binary and embedded UI build

    Command: make build

    Observed: B │ gzip: 0.36 kB ../internal/server/webdist/assets/vendor-router-C3lOAScb.js 75.34 kB │ gzip: 26.09 kB ../internal/server/webdist/assets/vendor-react-BicOiEU0.js 189.60 kB │ gzip: 59.61 kB ../internal/server/webdist/assets/index-7Li5y8Xo.js 259.66 kB │ gzip: 55.13 kB ✓ built in 513ms go build -trimpath -ldflags '-s -w -X github.com/Infisical/agent-vault/cmd.version=d5836ec-dirty -X github.com/Infisical/agent-vault/cmd.commit=d5836ec -X github.com/Infisical/agent-vault/cmd.date=2026-10-27T13:56:49Z -X github.com/Infisical/agent-vault/cmd.posthogAPIKey=' -o agent-vault .

Evidence
README behavior checked
Agent interfaces
API
API

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

Tested with
Codex / Luna
  • Linux: Codex / Luna · agent codex-cli 0.164.0 · Checked operation passed · Oct 27, 2026 on d5836ec3bb23

Each entry describes its recorded operation and source revision.

Safety
No unexpected network or file activity found in these checks

No problems traced to this repository code in these checks; a short run cannot prove safety. 358 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict. 12 static matches retained as context.

Source contains download and execute; review its purpose. install.sh

Gitleaks found a possible hardcoded secret; value withheld. docs/guides/openclaw-on-vps.mdx

OSV reports a known vulnerability in this dependency version. 36 distinct locations. 174 findings.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

Full event, path and process lists for each observed setup:

Run details

Haiku 5.5

Native agent · Checked operation passed

Checked operation ./agent-vault vault credential get --vault demo-vault ANTHROPIC_API_KEY

Agent-reported scope: Build Agent Vault from source (make build), run make test, start the server, create a vault and credential, add a service rule, and verify credential substitution through the MITM proxy.

Run details
run
Infisical--agent-vault-claude-haiku-5-5-1793108006659311593
date
Oct 27, 2026
time to working
832.6s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.310 (Claude Code)
platform
linux
reported cost
$0.052986
Recorded source
https://github.com/Infisical/agent-vault
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "d5836ec3bb2315de38043d742ae5daca11a4944a", "url": "https://github.com/Infisical/agent-vault"}
Test version
readme-d5b140d3c0f8b95c2dd6fe6fc381a303cacb92679582c22317d8e78b572f0cf2
revision
d5836ec3bb2315de38043d742ae5daca11a4944a
Whose fault: not assigned · resolved

Safety: Review signals: 1 download and execute, 1 hardcoded secret, 177 known vulnerability. 6 static matches retained as context.

Review signals: 1 download and execute, 1 hardcoded secret, 177 known vulnerability. 6 static matches retained as context.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

Source contains download and execute; review its purpose. install.sh

Gitleaks found a possible hardcoded secret; value withheld. docs/guides/openclaw-on-vps.mdx

OSV reports a known vulnerability in this dependency version. 36 distinct locations. 174 findings.

6 hardcoded secret matches retained as context; full list in the evidence.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • A credential for ANTHROPIC_API_KEY can be created and read back from a vault: Real input produced the expected result: sk-test-12345

    Source: For example, you can create a credential for `ANTHROPIC_API_KEY` and create a service rule for Agent Vault to substitute a dummy value `__anthropic_api_key__` for the real key.

    Input: vault demo-vault, key ANTHROPIC_API_KEY=sk-test-12345 (set earlier)

    Expected: credential get returns sk-test-12345

    Command: ./agent-vault vault credential get --vault demo-vault ANTHROPIC_API_KEY

    Observed: sk-test-12345

  • Agent Vault attaches the stored credential to a request routed through the proxy: Real input produced the expected result: Bearer secret-echo-789

    Source: Agent Vault intercepts every request and attaches credentials onto it before forwarding the request to the target outbound API.

    Input: HTTP request via proxy 127.0.0.1:14322 to echo.upstream.test:18080 with dummy Bearer __echo_token__; service local-echo maps ECHO_TOKEN=secret-echo-789

    Expected: upstream receives Bearer secret-echo-789

    Command: curl -s -m 10 -x http:<email>:14322 -H 'Authorization: <secret>' http://echo.upstream.test:18080/hello

    Observed: Bearer secret-echo-789"}

Examples

  • Documented development test suite: command completed successfully

    Source: README.md

    Input: make test (HOME isolated from the running server's ~/.agent-vault pidfile)

    Expected: all Go packages pass

    Command: make test

    Observed: cached) ok github.com/Infisical/agent-vault/internal/oauth (cached) ok github.com/Infisical/agent-vault/internal/pidfile (cached) ok github.com/Infisical/agent-vault/internal/proposal (cached) ok github.com/Infisical/agent-vault/internal/ratelimit (cached) ? github.com/Infisical/agent-vault/internal/requestlog [no test files] ok github.com/Infisical/agent-vault/internal/server (cached) ok github.com/Infisical/agent-vault/internal/session (cached) ok github.com/Infisical/agent-vault/internal/store (cached) ? github.com/Infisical/agent-vault/internal/telemetry [no test files]

  • nginx public UI proxy example: requires Docker, which is not installed in this guest

    Source: README.md

    Expected: documented command completes successfully

    Observed: requires Docker, which is not installed in this guest

  • Daytona OpenAI realtime example: requires Daytona and OpenAI credentials, which were not provided (needs_credentials)

    Source: README.md

    Expected: documented command completes successfully

    Observed: requires Daytona and OpenAI credentials, which were not provided (needs_credentials)

  • Slack agent template example: requires a configured Slack app and tokens, which were not provided (needs_credentials)

    Source: README.md

    Expected: documented command completes successfully

    Observed: requires a configured Slack app and tokens, which were not provided (needs_credentials)

Local or hosted: local

What the agent did

Build Agent Vault from source (make build), run make test, start the server, create a vault and credential, add a service rule, and verify credential substitution through the MITM proxy.

cd <guest-path> && ls -la && id -u && python3 --version && node --version 2>/dev/null; npm --version 2>/dev/null; go version 2>/dev/null; cat /etc/os-release | head -3; echo "CDP_URL=$CDP_URL"
cd <guest-path> && wc -c README.md && head -c 7000 README.md
cd <guest-path> && tail -c +7000 README.md | head -c 7500
cd <guest-path> && tail -c +14500 README.md
cd <guest-path> && cat Makefile && grep -m1 '^go ' go.mod && grep -n -i 'telemetry\|consent\|prompt\|read -' install.sh | head -20 && ls web && cat web/package.json 2>/dev/null | head -30 && ls .coldpass
cd <guest-path> && export NODE_USE_ENV_PROXY=1 && make build 2>&1 | tail -40; echo "EXIT=${PIPESTATUS[0]}"; ls -la agent-vault 2>/dev/null
cd <guest-path> && ./agent-vault --help 2>&1 | head -60; ./agent-vault server --help 2>&1 | head -40
cd <guest-path> && ./agent-vault vault --help 2>&1 | head -30; ./agent-vault user --help 2>&1 | sed -n 1,20p; ./agent-vault owner --help 2>&1 | sed -n 1,15p; ./agent-vault agent --help 2>&1 | sed -n 1,15p
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!' && nohup ./agent-vault server --mitm-port 0 -p 14321 > /tmp/av-server.log 2>&1 &
sleep 6; cat /tmp/av-server.log | tail -20; curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1:14321/ ; curl -s http://127.0.0.1:14321/api/health 2>/dev/null | head -c 300; echo
cd <guest-path> && ./agent-vault auth --help 2>&1 | sed -n 1,20p; ./agent-vault auth register --help 2>&1 | sed -n 1,25p
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 && printf 'GuestUser-Pass-123!\n' | ./agent-vault auth register --address http://127.0.0.1:14321 --email <email> --password-stdin 2>&1; echo "EXIT=$?"; ./agent-vault vault create --help 2>&1 | sed -n 1,15p; ./agent-vault vault credential --help 2>&1 | sed -n 1,15p; ./agent-vault vault service --help 2>&1 | sed -n 1,15p
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_ADDR=http://127.0.0.1:14321 && ./agent-vault vault create demo-vault 2>&1; echo "EXIT=$?"; ./agent-vault vault credential set --help 2>&1 | sed -n 1,20p
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_ADDR=http://127.0.0.1:14321 && ./agent-vault vault credential set --vault demo-vault ANTHROPIC_API_KEY=sk-test-12345 2>&1; echo "EXIT=$?"; ./agent-vault vault credential list --vault demo-vault 2>&1; echo "EXIT=$?"; ./agent-vault vault credential get --vault demo-vault ANTHROPIC_API_KEY 2>&1; echo "EXIT=$?"
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_ADDR=http://127.0.0.1:14321 && ./agent-vault vault service add --help 2>&1 | sed -n 1,40p; ./agent-vault catalog --help 2>&1 | sed -n 1,12p
cd <guest-path> && pkill -f 'agent-vault server' ; sleep 2; export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!' && nohup ./agent-vault server -p 14321 > /tmp/av-server.log 2>&1 &
sleep 6; tail -5 /tmp/av-server.log; mkdir -p /tmp/upstream && cat > /tmp/upstream/echo.py <<'EOF'
import http.server, json
class H(http.server.BaseHTTPRequestHandler):
    def do_GET(self):
        body = json.dumps({"path": self.path, "authorization": <secret>"Authorization")}).encode()
        self.send_response(200); self.send_header("Content-Type","application/json"); self.send_header("Content-Length",str(len(body))); self.end_headers(); self.wfile.write(body)
    def log_message(self, *a): pass
http.server.HTTPServer(("127.0.0.1", 18080), H).serve_forever()
EOF
nohup python3 -I /tmp/upstream/echo.py > /tmp/upstream/echo.log 2>&1 &
sleep 2; curl -s http://127.0.0.1:18080/hello; echo
cd <guest-path> && pgrep -af 'agent-vault' ; pkill -f '[.]/agent-vault server'; sleep 2; pgrep -af '[.]/agent-vault' ; echo "stopped-check done"
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!' && (nohup ./agent-vault server -p 14321 > /tmp/av-server.log 2>&1 &) ; sleep 6; tail -5 /tmp/av-server.log; mkdir -p /tmp/upstream && printf '%s\n' 'import http.server, json' 'class H(http.server.BaseHTTPRequestHandler):' '    def do_GET(self):' '        body = json.dumps({"path": self.path, "authorization": <secret>"Authorization")}).encode()' '        self.send_response(200); self.send_header("Content-Type","application/json"); self.send_header("Content-Length",str(len(body))); self.end_headers(); self.wfile.write(body)' '    def log_message(self, *a): pass' 'http.server.HTTPServer(("127.0.0.1", 18080), H).serve_forever()' > /tmp/upstream/echo.py && (nohup python3 -I /tmp/upstream/echo.py > /tmp/upstream/echo.log 2>&1 &); sleep 2; curl -s http://127.0.0.1:18080/hello; echo
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_ADDR=http://127.0.0.1:14321 && ./agent-vault vault credential set --vault demo-vault ECHO_TOKEN=secret-echo-789 2>&1; ./agent-vault vault service add --vault demo-vault --name local-echo --host 127.0.0.1:18080 --auth-type bearer --token-key ECHO_TOKEN 2>&1; echo "EXIT=$?"; ./agent-vault vault service list --vault demo-vault 2>&1 | tail -5; ./agent-vault agent create --help 2>&1 | sed -n 1,12p
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_ADDR=http://127.0.0.1:14321 && ./agent-vault vault service add --vault demo-vault --name local-echo --host localhost:18080 --auth-type bearer --token-key ECHO_TOKEN 2>&1; echo "EXIT=$?"; ./agent-vault vault service list --vault demo-vault 2>&1 | tail -4; ./agent-vault agent create guest-agent --vault demo-vault:proxy --token-only 2>&1 > /tmp/av-agent-token.txt; echo "EXIT=$?"; wc -c /tmp/av-agent-token.txt
cd <guest-path> && pkill -f '[.]/agent-vault server'; sleep 3; export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_DEV_MODE=true AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!' && (nohup ./agent-vault server -p 14321 > /tmp/av-server.log 2>&1 &); sleep 6; tail -3 /tmp/av-server.log; export AGENT_VAULT_ADDR=http://127.0.0.1:14321; ./agent-vault vault service add --vault demo-vault --name local-echo --host localhost:18080 --auth-type bearer --token-key ECHO_TOKEN 2>&1 | tail -3; echo "EXIT=$?"; ./agent-vault vault service list --vault demo-vault 2>&1 | tail -4
ss -ltnp 2>/dev/null | grep -E ':(14321|14322|18080)\b' ; echo; ps -eo pid,args | grep -E 'agent-vault server|echo.py' | grep -v grep | cut -c1-120
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_DEV_MODE=true AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!' && nohup ./agent-vault server -p 14321 > /tmp/av-server.log 2>&1 &
echo $! > /tmp/av-server.pid; sleep 6; tail -3 /tmp/av-server.log; export AGENT_VAULT_ADDR=http://127.0.0.1:14321 AGENT_VAULT_TELEMETRY=0; ./agent-vault vault service add --vault demo-vault --name local-echo --host localhost:18080 --auth-type bearer --token-key ECHO_TOKEN 2>&1 | tail -3; ./agent-vault vault service list --vault demo-vault 2>&1 | tail -4
export AGENT_VAULT_ADDR=http://127.0.0.1:14321 AGENT_VAULT_TELEMETRY=0; AV=<guest-path>; $AV vault service add --vault demo-vault --name local-echo --host localhost:18080 --auth-type bearer --token-key ECHO_TOKEN 2>&1 | tail -3; $AV vault service list --vault demo-vault 2>&1 | tail -4; cat /tmp/av-server.pid
echo "127.0.0.1 echo.upstream.test" | sudo tee -a /etc/hosts >/dev/null && getent hosts echo.upstream.test; curl -s http://echo.upstream.test:18080/x; echo; export AGENT_VAULT_ADDR=http://127.0.0.1:14321 AGENT_VAULT_TELEMETRY=0; AV=<guest-path>; $AV vault service add --vault demo-vault --name local-echo --host echo.upstream.test:18080 --auth-type bearer --token-key ECHO_TOKEN 2>&1 | tail -2; $AV vault service list --vault demo-vault 2>&1 | tail -4
TOKEN=<secret> /tmp/av-agent-token.txt | tr -d '\n'); echo "token_len=${#TOKEN}"; echo "--- no proxy auth:"<secret>'Authorization: <secret>' http://echo.upstream.test:18080/hello -w ' HTTP=%{http_code}\n'; echo "--- with agent token as proxy auth:"<secret>"http://<secret>:14322" -H 'Authorization: <secret>' http://echo.upstream.test:18080/hello -w ' HTTP=%{http_code}\n'; echo "--- upstream log:"; tail -3 /tmp/upstream/echo.log; echo "--- server log:"; tail -5 /tmp/av-server.log | cut -c1-300
export AGENT_VAULT_ADDR=http://127.0.0.1:14321 AGENT_VAULT_TELEMETRY=0; AV=<guest-path>; $AV vault token --help 2>&1 | sed -n 1,14p; echo ---; $AV vault token --vault demo-vault 2>&1 | head -c 300; echo; echo "rc=$?"
AV=<guest-path>; SESS=$($AV vault token --vault demo-vault 2>/dev/null | tr -d '\n'); echo "sess_len=${#SESS}"; echo "--- proxy with session token:"<secret>"http://<secret>:14322" -H 'Authorization: <secret>' http://echo.upstream.test:18080/hello -w ' HTTP=%{http_code}\n'; echo "--- upstream log:"; tail -3 /tmp/upstream/echo.log; echo "--- server log:"; tail -3 /tmp/av-server.log | cut -c1-300
cd <guest-path> && grep -rn "Proxy-Authorization" --include=*.go internal | grep -v _test | head -12 | cut -c1-260; grep -rln "Proxy-Authorization\|proxy auth" docs | head -5
cd <guest-path> && sed -n 1,80p internal/brokercore/proxyauth.go | cut -c1-200
AV=<guest-path>; SESS=$($AV vault token --vault demo-vault 2>/dev/null | tr -d '\n'); echo "--- proxy with session token as userinfo:"; curl -s -m 10 -x "http:<email>:14322" -H 'Authorization: <secret>' http://echo.upstream.test:18080/hello -w ' HTTP=%{http_code}\n'; echo "--- upstream log:"; tail -3 /tmp/upstream/echo.log; echo "--- server log:"; tail -3 /tmp/av-server.log | cut -c1-300
cd <guest-path> && grep -rn "Getenv\|DEV_MODE\|AllowPrivate\|allow_private" internal/netguard/*.go 2>/dev/null | grep -v _test | head; grep -rn "AGENT_VAULT_[A-Z_]*" --include=*.go -o internal cmd | sed 's/.*://' | sort | uniq -c | sort -rn | head -40; grep -rn "netguard" docs | head -5 | cut -c1-200
cd <guest-path> && sed -n 14,40p internal/netguard/netguard.go | cut -c1-180; grep -rln "ALLOW_PRIVATE_RANGES\|NETWORK_ALLOWLIST" docs | head
kill $(cat /tmp/av-server.pid); sleep 3; cd <guest-path>; export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_DEV_MODE=true AGENT_VAULT_NETWORK_ALLOWLIST=127.0.0.1 AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!'; nohup <guest-path> server -p 14321 > /tmp/av-server.log 2>&1 &
echo $! > /tmp/av-server.pid; sleep 6; tail -2 /tmp/av-server.log; AV=<guest-path>; SESS=$(AGENT_VAULT_ADDR=http://127.0.0.1:14321 $AV vault token --vault demo-vault 2>/dev/null | tr -d '\n'); echo "--- proxy request:"; curl -s -m 10 -x "http:<email>:14322" -H 'Authorization: <secret>' http://echo.upstream.test:18080/hello -w ' HTTP=%{http_code}\n'; echo "--- upstream saw:"; tail -2 /tmp/upstream/echo.log
cd <guest-path>; export AGENT_VAULT_TELEMETRY=0; ./agent-vault server stop 2>&1; sleep 3; export AGENT_VAULT_DEV_MODE=true AGENT_VAULT_NETWORK_ALLOWLIST=127.0.0.1 AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!'; nohup <guest-path> server -p 14321 > /tmp/av-server.log 2>&1 &
sleep 7; tail -2 /tmp/av-server.log; AV=<guest-path>; SESS=$(AGENT_VAULT_ADDR=http://127.0.0.1:14321 $AV vault token --vault demo-vault 2>/dev/null | tr -d '\n'); echo "--- proxy request:"; curl -s -m 10 -x "http:<email>:14322" -H 'Authorization: <secret>' http://echo.upstream.test:18080/hello -w ' HTTP=%{http_code}\n'; echo "--- upstream saw:"; tail -2 /tmp/upstream/echo.log
cd /tmp && curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fsSL https://get.agent-vault.dev -o /tmp/av-install.sh; echo "fetch_rc=$?"; ls -la /tmp/av-install.sh 2>/dev/null; cd <guest-path> && ls examples && grep -rn "PollInterval\|poll-interval\|time.NewTicker\|for {" --include=*.go internal cmd | grep -v _test | head -8 | cut -c1-200
cd /tmp && AGENT_VAULT_NO_TELEMETRY=1 NODE_USE_ENV_PROXY=1 sh /tmp/av-install.sh 2>&1 | tail -25; echo "EXIT=${PIPESTATUS[0]}"; command -v agent-vault && agent-vault version 2>&1 | head -3
cd <guest-path> && for d in examples/*; do echo "== $d"; ls $d | head -12; done; command -v docker || echo "no docker"; grep -n "" examples/nginx-public-ui-proxy/README.md 2>/dev/null | head -12 | cut -c1-200
mkdir -p /tmp/av-scripts <guest-path> && AV=<guest-path>; SESS=$(AGENT_VAULT_ADDR=http://127.0.0.1:14321 $AV vault token --vault demo-vault 2>/dev/null | tr -d '\n'); echo "$SESS" > /tmp/av-scripts/sess.txt; cat > /tmp/av-scripts/mk.py <<'EOF'
import json, os
W = "<guest-path>"
sess = open("/tmp/av-scripts/sess.txt").read().strip()
ENV = {"AGENT_VAULT_ADDR": "http://127.0.0.1:14321", "AGENT_VAULT_TELEMETRY": "0"}
BIN = "./agent-vault"
cred_argv = [BIN, "vault", "credential", "get", "--vault", "demo-vault", "ANTHROPIC_API_KEY"]
proxy_argv = ["curl", "-s", "-m", "10", "-x", "http://<email>:14322",
              "-H", "Authorization: <secret>", "http://echo.upstream.test:18080/hello"]
probe = {"kind": "cli", "argv": cred_argv, "cwd": W, "env": ENV, "expected_text": "sk-test-12345"}
claims = [
 {"kind": "claim", "claim": "A credential for ANTHROPIC_API_KEY can be created and read back from a vault",
  "source": "For example, you can create a credential for `ANTHROPIC_API_KEY` and create a service rule for Agent Vault to substitute a dummy value `__anthropic_api_key__` for the real key.",
  "input": "vault demo-vault, key ANTHROPIC_API_KEY=sk-test-12345 (set earlier)", "expected": "credential get returns sk-test-12345",
  "probe_kind": "cli", "argv": cred_argv, "cwd": W, "env": ENV, "expected_text": "sk-test-12345"},
 {"kind": "claim", "claim": "Agent Vault attaches the stored credential to a request routed through the proxy",
  "source": "Agent Vault intercepts every request and attaches credentials onto it before forwarding the request to the target outbound API.",
  "input": "HTTP request via proxy 127.0.0.1:14322 to echo.upstream.test:18080 with dummy Bearer __echo_token__; service local-echo maps ECHO_TOKEN=secret-echo-789",
  "expected": "upstream receives Bearer secret-echo-789", "probe_kind": "cli", "argv": proxy_argv, "cwd": W,
  "env": {}, "expected_text": "Bearer secret-echo-789"},
]
json.dump(claims, open(W + "/.coldpass/claims.json", "w"), indent=2)
json.dump(probe, open(W + "/.coldpass/probe.json", "w"), indent=2)
print("written", len(claims))
EOF
python3 -I /tmp/av-scripts/mk.py && cat <guest-path> | head -30
cd <guest-path> && timeout 900 make test > /tmp/av-scripts/maketest.log 2>&1; echo "EXIT=$?"; tail -15 /tmp/av-scripts/maketest.log | cut -c1-250; grep -c '^ok' /tmp/av-scripts/maketest.log; grep -E '^(FAIL|--- FAIL|panic)' /tmp/av-scripts/maketest.log | head -10
cd <guest-path> && grep -n -A12 'FAIL: TestEnsureServerStopped_AllowsForceWithDATABASE_URL' /tmp/av-scripts/maketest.log | cut -c1-260 | head -30; grep -n 'func TestEnsureServerStopped_AllowsForceWithDATABASE_URL' -A25 cmd/*_test.go | cut -c1-200 | head -40
cd <guest-path> && ./agent-vault server stop 2>&1 | tail -1; sleep 3; timeout 900 make test > /tmp/av-scripts/maketest2.log 2>&1; echo "EXIT=$?"; grep -E '^(FAIL|ok|---)' /tmp/av-scripts/maketest2.log | cut -c1-120 | head -30
cd <guest-path> && export AGENT_VAULT_TELEMETRY=0 AGENT_VAULT_DEV_MODE=true AGENT_VAULT_NETWORK_ALLOWLIST=127.0.0.1 AGENT_VAULT_MASTER_PASSWORD='GuestPass-123!'; nohup <guest-path> server -p 14321 > /tmp/av-server.log 2>&1 &
sleep 7; tail -2 /tmp/av-server.log; AV=<guest-path>; AGENT_VAULT_ADDR=http://127.0.0.1:14321 $AV vault credential get --vault demo-vault ANTHROPIC_API_KEY; echo; SESS=$(AGENT_VAULT_ADDR=http://127.0.0.1:14321 $AV vault token --vault demo-vault 2>/dev/null | tr -d '\n'); echo "$SESS" > /tmp/av-scripts/sess.txt; curl -s -m 10 -x "http:<email>:14322" -H 'Authorization: <secret>' http://echo.upstream.test:18080/hello; echo
cd <guest-path> && grep -n "examples\|cycles" <guest-path> | head -40; ls .coldpass; tail -c 400 /tmp/av-scripts/maketest2.log
sed -n 1027,1075p <guest-path>; sed -n 1221,1240p <guest-path>
grep -n "def example_result" -A25 <guest-path> | head -45
cd <guest-path> && cat > examples.json <<'EOF'
[
 {"claim":"Documented development test suite","source":"README.md","input":"make test","expected":"all Go packages pass","argv":["make","test"],"cwd":"<guest-path>","env":{"AGENT_VAULT_TELEMETRY":"0"}},
 {"claim":"nginx public UI proxy example","source":"README.md","reason":"requires Docker, which is not installed in this guest","deferred":false},
 {"claim":"Daytona OpenAI realtime example","source":"README.md","reason":"requires Daytona and OpenAI credentials, which were not provided (needs_credentials)","deferred":false},
 {"claim":"Slack agent template example","source":"README.md","reason":"requires a configured Slack app and tokens, which were not provided (needs_credentials)","deferred":false}
]
EOF
cat > cycles.json <<'EOF'
{"detected": false, "reason": "No README-documented cron, scheduler, or --once mode. The only periodic loop is the external credential store poll interval (--poll-interval-seconds) for Infisical-backed stores, which is not configured in this guest.", "checks": []}
EOF
python3 -m json.tool examples.json >/dev/null && python3 -m json.tool cycles.json >/dev/null && echo ok
cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60
cd <guest-path> && sed -n 335,370p cmd/cmd_test.go; grep -rn "func.*PidFile\|pidfile.Path\|func Path" internal/pidfile/*.go | head; grep -rn "AGENT_VAULT_HOME\|XDG\|UserHomeDir" internal/config/*.go 2>/dev/null | head -5
cd <guest-path> && sed -n 10,30p internal/pidfile/pidfile.go
cd <guest-path> && GC=$(go env GOCACHE) GM=$(go env GOMODCACHE) GP=$(go env GOPATH); echo "$GC $GM $GP"; mkdir -p /tmp/avtest-home && python3 - "$GC" "$GM" "$GP" <<'EOF'
import json,sys
gc,gm,gp=sys.argv[1:]
p='<guest-path>'
d=json.load(open(p))
d[0]['env']={"AGENT_VAULT_TELEMETRY":"0","HOME":"/tmp/avtest-home","GOCACHE":gc,"GOMODCACHE":gm,"GOPATH":gp}
d[0]['input']="make test (HOME isolated from the running server's ~/.agent-vault pidfile)"
json.dump(d,open(p,'w'),indent=1)
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('valid'), d.get('problems')); [print(e.get('claim'),e.get('verdict'),e.get('returncode')) for e in d.get('replay',{}).get('details',{}).get('example_checks',[])]" 2>/dev/null || true
cd <guest-path> && cat > report.json <<'EOF'
{
 "outcome": "pass",
 "fault_owner": "none",
 "operation": "Build Agent Vault from source (make build), run make test, start the server, create a vault and credential, add a service rule, and verify credential substitution through the MITM proxy.",
 "steps": [
  "Read README; pinned commit d5836ec3bb2315de38043d742ae5daca11a4944a.",
  "Installed prerequisites; ran make build (web npm ci + go build) to produce ./agent-vault.",
  "Ran README installer; agent-vault v0.40.2 installed to /usr/local/bin.",
  "Started server on 14321 (proxy 14322); registered owner; created demo-vault and ANTHROPIC_API_KEY credential; read back sk-test-12345.",
  "Added local-echo service (echo.upstream.test:18080, bearer ECHO_TOKEN); issued session token; sent request via proxy with dummy Bearer __echo_token__; upstream received Bearer secret-echo-789 (HTTP 200).",
  "make test: first run failed because a live server (PID 8516) was present; stopped server and reran: exit 0. Final example isolates HOME so the test does not see the running server pidfile; exit 0.",
  "Recorded examples and cycles; ran checker --validate --replay: valid true."
 ],
 "deviations": [
  "AGENT_VAULT_DEV_MODE=true on the server: required to accept a localhost-style service host check in this guest; guest-only override.",
  "AGENT_VAULT_NETWORK_ALLOWLIST=127.0.0.1: netguard blocked the loopback upstream; narrow allowlist, private-range blocking otherwise on.",
  "/etc/hosts entry 127.0.0.1 echo.upstream.test: needed because service hosts must be dotted names, not IPs.",
  "Telemetry disabled (AGENT_VAULT_TELEMETRY=0).",
  "Probes use the source-built ./agent-vault, while the installer placed v0.40.2 in /usr/local/bin.",
  "make test example sets HOME to an isolated directory so the running server's pidfile is not seen by the test."
 ],
 "stuck_step": null,
 "main_blocker": null,
 "plain_failure": "Initial make test failed (exit 2) only because a manually started server was running; not a product defect.",
 "suggested_fix": "None required. Consider making TestEnsureServerStopped_* independent of the developer's real ~/.agent-vault pidfile, e.g. by setting HOME to a temp dir inside the test."
}
EOF
python3 -m json.tool report.json >/dev/null && echo ok; cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | head -c 600
Earlier attempts (1)

Luna

Native agent · Checked operation passed

Checked operation ./agent-vault server --host 0.0.0.0 · local HTTP start + response check

Agent-reported scope: Build and serve the Agent Vault management UI

Run details
run
Infisical--agent-vault-gpt-6-luna-1793109117018632845
date
Oct 27, 2026
time to working
284.7s
product hosting / execution
Local HTTP server in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.164.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/Infisical/agent-vault
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "d5836ec3bb2315de38043d742ae5daca11a4944a", "url": "https://github.com/Infisical/agent-vault"}
Test version
readme-38e6b13f3b13804effb95797e3466b1a1334da7a232d897cbc8965867f802605
revision
d5836ec3bb2315de38043d742ae5daca11a4944a
Whose fault: not assigned · resolved

Safety: Review signals: 1 download and execute, 1 hardcoded secret, 177 known vulnerability. 6 static matches retained as context.

Review signals: 1 download and execute, 1 hardcoded secret, 177 known vulnerability. 6 static matches retained as context.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written.

Source contains download and execute; review its purpose. install.sh

Gitleaks found a possible hardcoded secret; value withheld. docs/guides/openclaw-on-vps.mdx

OSV reports a known vulnerability in this dependency version. 36 distinct locations. 174 findings.

6 hardcoded secret matches retained as context; full list in the evidence.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • Agent Vault provides a self-contained binary that stores credentials locally.: Real input produced the expected result: <title>Agent Vault</title>

    Source: the simpler, self-contained option: a single open-source binary that stores credentials itself and runs entirely on infrastructure you control, with no dependency on any other system.

    Input: GET /

    Expected: The Agent Vault management UI is served.

    Command: ./agent-vault server --host 0.0.0.0

    Observed: <title>Agent Vault</title> <script type="module" crossorigin src="/assets/index-7Li5y8Xo.js"></script> <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-CbXtAM7H.js"> <link rel="modulepreload" crossorigin href="/assets/vendor-react-BicOiEU0.js"> <link rel="modulepreload" crossorigin href="/assets/vendor-router-C3lOAScb.js"> <link rel="stylesheet" crossorigin href="/assets/index-BM3CyTFV.css"> </head> <body> <div id="root"></div> </body> </html>

Examples

  • Build frontend and Go binary as documented.: command completed successfully

    Source: README.md / Development

    Input: make build

    Expected: agent-vault binary and embedded UI build

    Command: make build

    Observed: B │ gzip: 0.36 kB ../internal/server/webdist/assets/vendor-router-C3lOAScb.js 75.34 kB │ gzip: 26.09 kB ../internal/server/webdist/assets/vendor-react-BicOiEU0.js 189.60 kB │ gzip: 59.61 kB ../internal/server/webdist/assets/index-7Li5y8Xo.js 259.66 kB │ gzip: 55.13 kB ✓ built in 513ms go build -trimpath -ldflags '-s -w -X github.com/Infisical/agent-vault/cmd.version=d5836ec-dirty -X github.com/Infisical/agent-vault/cmd.commit=d5836ec -X github.com/Infisical/agent-vault/cmd.date=2026-10-27T13:56:49Z -X github.com/Infisical/agent-vault/cmd.posthogAPIKey=' -o agent-vault .

Local or hosted: local

What the agent did

Build and serve the Agent Vault management UI

pwd; id -u; rg --files -g 'README*' -g 'AGENTS.md' -g 'pyproject.toml' -g 'package.json' -g 'Makefile' -g '*.yml' -g '*.yaml' | head -80; python3 --version; git status --short; sed -n '1,240p' README.md
ls -la; find . -maxdepth 2 -type f | head -100; ls -la .coldpass 2>/dev/null || true; sed -n '1,200p' Makefile 2>/dev/null; command -v go; go version; command -v curl; env | grep -E '^(HTTP|HTTPS|CDP)'
git init; git remote add origin https://github.com/Infisical/agent-vault; git fetch --depth 1 origin d5836ec3bb2315de38043d742ae5daca11a4944a; git reset --mixed FETCH_HEAD; make build
./agent-vault --help; rg --version || true; sed -n '1,180p' cmd/server.go; sed -n '1,140p' cmd/root.go; grep -n 'single open-source\|starts the HTTP API\|By default Agent Vault stores' README.md
AGENT_VAULT_MASTER_PASSWORD=Coldpass-test-password-123 AGENT_VAULT_TELEMETRY=false ./agent-vault server --host 0.0.0.0 > /tmp/agent-vault.log 2>&1 & echo $! > /tmp/agent-vault.pid; for n in $(seq 1 30); do curl -fsS http://127.0.0.1:14321/ -o /tmp/av-home.html && break; sleep 1; done; head -c 500 /tmp/av-home.html; cat /tmp/agent-vault.log
mkdir -p .coldpass; cat > .coldpass/probe.json <<'EOF'
{"kind":"http","argv":["./agent-vault","server","--host","0.0.0.0"],"cwd":"<guest-path>","url":"http://127.0.0.1:14321/","env":{"AGENT_VAULT_MASTER_PASSWORD":"Coldpass-test-password-123","AGENT_VAULT_TELEMETRY":"false"},"expected_text":"<title>Agent Vault</title>"}
EOF
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"Agent Vault provides a self-contained binary that stores credentials locally.","source":"the simpler, self-contained option: a single open-source binary that stores credentials itself and runs entirely on infrastructure you control, with no dependency on any other system.","input":"GET /","expected":"The Agent Vault management UI is served.","probe_kind":"http","argv":["./agent-vault","server","--host","0.0.0.0"],"url":"http://127.0.0.1:14321/","env":{"AGENT_VAULT_MASTER_PASSWORD":"Coldpass-test-password-123","AGENT_VAULT_TELEMETRY":"false"},"expected_text":"<title>Agent Vault</title>","cwd":"<guest-path>"}]
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"Build frontend and Go binary as documented.","source":"README.md / Development","input":"make build","expected":"agent-vault binary and embedded UI build","argv":["make","build"],"cwd":"<guest-path>","expected_text":"built in"}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"README entry points describe a persistent HTTP/proxy server and CLI interactions; no product scheduler or recurring cycle is documented.","checks":[]}
EOF

<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Build and serve the Agent Vault management UI","operation_scope":"Pinned source d5836ec3bb2315de38043d742ae5daca11a4944a; Go 1.26.10 and Node/npm prerequisites in guest","steps":["Read README.md and inspected Makefile","git init; git remote add origin https://github.com/Infisical/agent-vault; git fetch --depth 1 origin d5836ec3bb2315de38043d742ae5daca11a4944a; git reset --mixed FETCH_HEAD","make build","AGENT_VAULT_MASTER_PASSWORD=... AGENT_VAULT_TELEMETRY=false ./agent-vault server --host 0.0.0.0","GET http://127.0.0.1:14321/ returned HTTP 200 and Agent Vault page","Checker validation and replay passed"],"deviations":[],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF