Blog
Notes on agent security, MCP, and building Sallyport.

desktop execution gateway latencyp95 latency benchmarkbrokered HTTP latency
What desktop execution gateway latency should teams require?8 min read
Set desktop execution gateway latency targets for p50 and p95, benchmark direct versus brokered HTTP and SSH, and isolate approval time.
Latest Posts

8 min read
macOS process identity needs more than a Team ID
A practical macOS process identity model using Team ID, signing identifier, designated requirements, paths, and strict unsigned-build handling.
macOS process identityTeam ID authorization

8 min read
A Mac-only execution gateway in a mixed fleet
See when a Mac-only execution gateway improves a mixed fleet, how to bound a pilot, document gaps, measure coverage, and decide whether to wait.
Mac-only execution gatewaymixed fleet security

8 min read
Per-use confirmation has a break-even point
Model when per-use confirmation costs more than session approval using prompt volume, response delay, recovery time, and team size.
per-use confirmationsession authorization

8 min read
How to choose an execution gateway over a secrets broker
Compare an execution gateway with a custom secrets broker across credential isolation, process identity, tamper evidence, updates, and audits.
execution gatewaysecrets broker

8 min read
Credential lifecycle and execution need separate owners
Keep credential lifecycle and execution separate while preserving expiration, revocation, and attribution across a desktop action gateway.
credential lifecycle and executionHashiCorp Vault rotation

8 min read
Secret broker errors need proof before retries
Design secret broker errors around execution evidence, so agents can separate safe preflight retries from unknown remote outcomes.
secret broker errorssafe retry logic

8 min read
Local execution records can support SOC 2 CC7 evidence
Learn where SOC 2 CC7 evidence from local execution records helps with CC7.1 and CC7.2, what auditors may request, and which gaps remain.
SOC 2 CC7 evidenceCC7.1 evidence

8 min read
MCP stdio vs Unix sockets depends on the trust boundary
MCP stdio vs Unix sockets compared for desktop secret brokers, covering lifetime, permissions, caller identity, cleanup, and deployment tradeoffs.
MCP stdio vs Unix socketsdesktop secrets broker

8 min read
macOS Keychain for autonomous coding tools
Learn where macOS Keychain protects credentials, where that protection stops, and why autonomous tools need authenticated, brokered execution.
macOS KeychainAI agent credential security

8 min read
Why are OAuth refresh token files production credentials?
OAuth refresh token files are production credentials. Learn how headless AI agents should store, scope, rotate, and audit them without murky ownership.
OAuth refresh token filesheadless AI agent authentication

8 min read
Orphaned agent subprocesses can keep credentials alive
Orphaned agent subprocesses can keep credentials and connections alive after a timeout. Learn process-group cleanup, run-state revocation, and audit methods.
orphaned agent subprocessesAI agent timeouts

8 min read
Does AI provider fallback keep credentials and audits intact?
AI provider fallback can silently change credentials, billing, and data location. Build explicit routes, approvals, and one continuous audit record.
AI provider fallbackAI audit trail

8 min read
CDN purge scope previews for AI agents
CDN purge scope previews show AI agent operators the host, path, tag count, and estimated reach before targeted or purge-all actions run.
CDN purge scope previewsAI agent cache purge

8 min read
How Unicode hostname prompts can approve the wrong destination
Unicode hostname prompts need one canonical destination before an HTTP gateway adds credentials. Test punycode, scripts, dots, invisibles, and redirects.
Unicode hostname promptspunycode security

8 min read
Why keep SSH stdout and stderr separate?
Keeping SSH stdout and stderr separate gives agents reliable data, useful diagnostics, honest ordering, and an unambiguous exit result.
SSH stdout and stderrSSH command output

8 min read
Can MCP stdio backpressure freeze your agent?
MCP stdio backpressure can block an agent on oversized tool results. Reproduce pipe stalls, cap results, drain safely, and test cancellation recovery.
MCP stdio backpressureMCP large tool results

8 min read
Agent tool errors that help without exposing secrets
Design agent tool errors that guide retries and approvals without exposing tokens, headers, raw connection failures, or sensitive diagnostics.
agent tool errorssecret safe errors

8 min read
Version pinning for agent clients before sensitive access
Version pinning for agent clients lets teams test a known local build, verify its identity, and control when it can reach sensitive services.
version pinning for agent clientsAI agent security

8 min read
SSH startup files: why remote commands lie to agents
SSH startup files can alter remote agent commands through profiles, aliases, functions, PATH changes, TTY behavior, and server-side rules.
SSH startup filesremote shell

8 min read
Can SSH hostname canonicalization change the approved target?
Learn how SSH hostname canonicalization rewrites targets, re-runs client config, affects host-key checks, and changes what an approval must record.
SSH hostname canonicalizationOpenSSH canonical hostname

8 min read
Should agent session resume keep its old approval?
Agent session resume must trigger a fresh authority decision when process identity, vault state, or gateway state changes.
agent session resumeagent authorization

8 min read
Prompt injection and AI agent tool access: contain harm
Prompt injection and AI agent tool access create a direct path from hostile content to authenticated actions. Learn how gateways, scoped credentials, and approvals contain it.
prompt injection and AI agent tool accessindirect prompt injection

8 min read
Tamper-evident audit trails for AI agents that prove actions
Tamper-evident audit trails for AI agents need more than logs: learn how hash chains, encryption, checkpoints, and verification prove actions.
tamper-evident audit trailsAI agent logging

8 min read
Action-level control for AI coding agents that people use
Action-level control for AI coding agents keeps credentials out of model context and puts human approval and auditable decisions before sensitive actions.
action-level control for AI coding agentsagent authorization

8 min read
API key leaks through AI agents: stop handing them secrets
API key leaks through AI agents spread through prompts, logs, shells, and repos. Learn how to isolate credentials and approve actions safely.
API key leaks through AI agentsAI agent security

8 min read
Secure Enclave and Touch ID for AI Agent Secrets
Secure Enclave and Touch ID can protect developer secrets from AI coding agents when credentials stay behind a gated action boundary.
Secure Enclave and Touch IDAI coding agents

8 min read
AI agents SSH access: remote commands without private keys
AI agents SSH access should use mediated remote actions, not copied private keys. Build approval, server limits, host checks, and audit trails.
AI agents SSH accessSSH private keys

8 min read
Investigating blocked AI agent calls without weak controls
Investigating blocked AI agent calls reveals tool design flaws, missing access, and suspicious requests without weakening credential controls.
investigating blocked AI agent callsagent access denials

8 min read
AI Agent Action Catalog: Find Access You Do Not Need
Build an AI agent action catalog that exposes excess permissions by recording each operation, impact, owner, identity, and approval decision.
AI agent action catalogagent access control

8 min read
Updating a local action gateway without breaking agent work
Updating a local action gateway safely requires work boundaries, session control, in-flight request checks, fresh authorization tests, and audit review.
updating local action gatewayAI agent sessions

8 min read
Migration Assistant agent vaults need a cold start
Migration Assistant agent vaults need a security cutover: test transferred data, fresh approvals, audit integrity, and credential bindings first.
Migration Assistant agent vaultsMac agent migration

8 min read
Secret-free agent tools: action contracts that hold up
Secret-free agent tools keep credentials outside AI processes by using action contracts, constrained parameters, human approval, and auditable execution.
secret-free agent toolsaction contracts

8 min read
How vault lock vs screen lock changes an agent test
A practical vault lock vs screen lock test plan for macOS developers who need to prove an AI agent cannot use credentials after denial.
vault lock vs screen lockmacOS session security

8 min read
IPv6 address normalization for approval targets
IPv6 address normalization makes approval targets readable and comparable across bracketed URLs, mapped IPv4 forms, compressed zeros, and zones.
IPv6 address normalizationIPv6 approval targets

8 min read
SSH config Match blocks and agent approval
Review SSH config Match blocks so agent approvals match the real host, user, key, ProxyJump route, and canonicalized destination.
SSH config Match blocksSSH agent behavior

8 min read
MCP tool name collisions and safer agent behavior
MCP tool name collisions cause confused agent behavior when similar actions hide different access. Learn naming, description, schema, and testing rules.
MCP tool name collisionsMCP tool descriptions

8 min read
Expired API tokens: recovery rules for long agent jobs
Expired API tokens do not have to derail long agent tasks. Set renewal ownership, classify errors, cap retries, and recover writes safely.
expired API tokensagent token renewal

8 min read
When should agent binary updates lose their trust?
Agent binary updates need a fresh trust decision. Learn how to verify macOS signing, publisher provenance, process context, and access.
agent binary updatesmacOS code signing

8 min read
SSH connection multiplexing: control socket risks
SSH connection multiplexing can keep authenticated access alive after a task ends. Learn how to isolate control sockets, close sessions, and preserve evidence.
SSH connection multiplexingControlMaster security

8 min read
Agent activity ordering for reliable incident reconstruction
Agent activity ordering needs more than timestamps. Preserve session identity, call lifecycle events, durable sequence, and result timing for investigations.
agent activity orderingAI agent audit logs

8 min read
Autonomous agent onboarding should begin with a locked vault
Autonomous agent onboarding should move from a locked vault to safe HTTP, isolated SSH, per-use approval, and verified audit records.
autonomous agent onboardingAI agent credentials

8 min read
Approval timeouts keep old approvals from doing new work
Approval timeouts stop old deploy, delete, and SSH approvals from executing after targets or conditions change. Learn how to bind, expire, and recheck them.
approval timeoutsstale approvals

8 min read
Webhook audit trail: trace agent workflows end to end
Build a webhook audit trail that links agent actions, outbound attempts, verified callbacks, retries, and final workflow state without guessing.
webhook audit trailagent actions

8 min read
How shared API account attribution works across agent sessions
Shared API account attribution keeps agent sessions accountable even when several local agents use one vendor credential for external actions.
shared API account attributionagent session audit trail

8 min read
Can duplicate gateway instances split your audit trail?
Duplicate gateway instances can create conflicting authority and hidden history. Test vault ownership, approvals, revocation, and audit integrity safely.
duplicate gateway instancessplit audit trail

8 min read
How AI agent refresh tokens should be controlled
AI agent refresh tokens need a human-owned action layer, clear refresh authority, usable revocation, and records that explain every use.
AI agent refresh tokensOAuth token rotation

8 min read
Why does keeping MCP stdout clean protect the protocol boundary?
MCP stdout clean handling prevents logs, banners, and malformed frames from crossing an agent gateway boundary. Build a harness that proves calls stop.
MCP stdout cleanMCP stdio testing

8 min read
How to verify an SSH helper before launch
Learn how to verify an SSH helper by checking its bundle path, signature, ownership, file identity, and launch-time code requirement on macOS.
verify an SSH helpermacOS code signature

7 min read
Can encrypted audit backup verification prove recovery?
Encrypted audit backup verification lets teams restore ciphertext on a clean machine, confirm chain integrity offline, and expose recovery gaps before an incident.
encrypted audit backup verificationoffline audit verification

8 min read
MCP tool descriptions that stop production mistakes
MCP tool descriptions prevent accidental production actions when they name the target, side effect, and confirmation requirement in plain language.
MCP tool descriptionsproduction actions

8 min read
Cloud cost actions for AI agents need a hard boundary
Cloud cost actions for AI agents need separate authority for reporting, resizing, commitments, and account closure, with bound approvals and audit evidence.
Cloud cost actionsAI agent security

7 min read
Should bulk API operations show their targets first?
Bulk API operations need more than a count. Learn how AI agents can preview exact target sets, bind approvals, and handle partial changes safely.
bulk API operationsAI agent approvals

8 min read
HTTP header precedence: stop API identity conflicts
HTTP header precedence can split API identity across clients and proxies. Learn how to reject duplicate Authorization and custom headers safely.
HTTP header precedenceduplicate Authorization header

8 min read
AI agent retry logging that exposes duplicate effects
AI agent retry logging links each attempt to one intended action, preserving unknown outcomes and exposing repeated side effects during investigation.
AI agent retry loggingidempotency keys

8 min read
Revoke AI Agent Access During a Live Task Safely
Learn how to revoke AI agent access during a live task, contain remote work, preserve evidence, review logs, and safely resume development.
revoke AI agent accessagent session revocation

8 min read
How MCP config precedence changes across terminals and IDEs
MCP config precedence differs by client. Learn which server command wins across Claude Code, VS Code, Cursor, plugins, and terminal agents.
MCP config precedenceMCP server command

8 min read
Agent tool temporary files: find and clean secret traces
Agent tool temporary files can retain API requests, output, and debug logs. Learn how to find, contain, test, and clean sensitive remnants on macOS.
agent tool temporary filesAI agent security

8 min read
Code signing for AI agents: approve sessions with evidence
Code signing for AI agents helps teams identify agent processes, review shared Mac approvals, and limit credential use without trusting signatures blindly.
code signing for AI agentsmacOS code signing

8 min read
How agent approval prompts prevent cross-run approval
Agent approval prompts need process and session identity so reviewers can approve the intended action when parallel runs share one queue.
agent approval promptsparallel agent approvals

8 min read
Can URL userinfo hide your API destination?
URL userinfo can disguise an API destination. Learn how to parse, reject, display, and test userinfo safely before agents send requests.
URL userinfouserinfo URL security

8 min read
Custom MCP tool review: a hands-on security checklist
Use this custom MCP tool review checklist to inspect inputs, outbound requests, process identity, logs, approvals, and access removal before agent use.
custom MCP tool reviewMCP tool security

8 min read
Is your SSH host key rotation ready?
Plan SSH host key rotation with overlapping keys, published fingerprints, a controlled change window, and revocation tests that preserve verification.
SSH host key rotationrotate SSH host keys

8 min read
MCP stdio security boundaries for local AI agents
MCP stdio security for local AI agents: separate tool context from credentialed actions, approvals, SSH controls, and tamper-evident audit trails.
MCP stdio securitylocal AI agents

8 min read
HTTP Authentication for AI Agents: Safe Credential Patterns
HTTP authentication for AI agents explained: compare bearer tokens, Basic auth, and custom headers, then keep credentials out of agent context.
HTTP authentication for AI agentsbearer token security

8 min read
Agent tool timeouts: recovery plans that prevent repeats
Agent tool timeouts need a recovery plan that separates failed requests from completed work with retries, idempotency, reconciliation, and audit evidence.
agent tool timeoutsidempotent retries

8 min read
Do MCP capability downgrades weaken agent controls?
MCP capability downgrades need security tests that prove approvals, per-call review, and tamper-evident audit capture survive older clients.
MCP capability downgradesMCP security testing

8 min read
Agent tool failure testing: catch unsafe retries early
Agent tool failure testing needs more than error assertions. Use a practical matrix for expired credentials, denials, bad data, timeouts, and SSH interruptions.
agent tool failure testingAI agent tools

8 min read
AI agent file uploads need hard boundaries
AI agent file uploads need strict size, type, and destination checks to stop logs, exports, and customer files from reaching the wrong receiver.
AI agent file uploadssecure file upload API

8 min read
Safe APIs for AI Agents: Writes You Can Trace
Safe APIs for AI agents use narrow operations, idempotent writes, actionable errors, and request IDs that preserve control and traceability.
safe APIs for AI agentsidempotent API writes

8 min read
Are duplicate MCP server registrations running twice?
Duplicate MCP server registrations can launch parallel processes and muddy audits. Detect overlaps across global and project configs before calls repeat.
duplicate MCP server registrationsMCP config scopes

8 min read
AI agent alert changes that reduce visibility
Control AI agent alert changes by separating threshold edits, temporary muting, and deletion, with stronger review whenever visibility drops.
AI agent alert changesmonitoring alert automation

8 min read
Are Touch ID fallback paths safe for agent approvals?
Touch ID fallback paths for agent approvals, covering clamshell mode, external keyboards, failed scans, sensor lockout, waits, and hard stops.
Touch ID fallback pathsagent approvals

8 min read
How HTTP request signatures bound AI agent API calls
HTTP request signatures bind AI-operated API calls to a method, target, body, and time. Learn secure fields, replay controls, and clock drift rules.
HTTP request signaturessigned API requests

8 min read
MCP server updates: treat releases as supply-chain events
MCP server updates need supply-chain review: pin artifacts, compare tool behavior, test access boundaries, and retain a clean rollback path.
MCP server updatesMCP supply chain

8 min read
TLS certificate failures: an agent response procedure
TLS certificate failures in agent API calls need an incident procedure that preserves evidence, blocks bypasses, verifies trust, and restores access safely.
TLS certificate failuresagent API security

8 min read
Does approval queue call order survive a race?
Approval queue call order decides whether a human approval stays meaningful when two agent writes arrive together. Reproduce the race and inspect cards, execution, and journals.
approval queue call orderagent approval queue

8 min read
Stateless SSH helpers for safer AI agent workflows
Stateless SSH helpers give AI agents fresh connections, clearer audit trails, and less cross-run authority carryover without hiding remote risk.
stateless SSH helpersAI agent SSH

8 min read
Reviewer agent isolation: keep builders from shared write access
Reviewer agent isolation keeps AI code review separate from code changes, using fixed commits, distinct credentials, protected promotion, and auditable evidence.
reviewer agent isolationAI code review

8 min read
MCP tool annotations and approval boundaries
MCP tool annotations can describe expected behavior, but only tests of real side effects should determine which agent actions need approval.
MCP tool annotationsreadOnlyHint

8 min read
AI agent approval controls: rules versus clear decisions
AI agent approval controls can replace fragile rules for many local agents. Compare policy maintenance, clear prompts, secret handling, and audit evidence.
AI agent approval controlspolicy engines

8 min read
Agent identity vs credential identity: stop hiding actors
Agent identity vs credential identity explains how to approve AI agent runs, protect secrets, audit actions, and revoke the right actor.
agent identity vs credential identityAI agent security

8 min read
Status endpoint polling: how agents wait without loops
Status endpoint polling needs bounded intervals, stop conditions, budgets, and escalation points so AI agents cannot wait or retry forever.
status endpoint pollingagent polling

8 min read
AI agent action gateways: an evaluation test
Evaluate AI agent action gateways by credential custody, process identity, approval scope, destination control, and tamper-evident audit evidence.
AI agent action gatewaysagent credential security

8 min read
Break-glass runbook: regain control of AI agents
Build a break-glass runbook for agent-controlled systems with named revokers, urgent approval limits, evidence handling, recovery gates, and drills.
break-glass runbookAI agent security

8 min read
Timing side-channel tests should treat denial as a result
Timing side-channel tests help prevent agents from inferring vault state through success, denial, missing credentials, or invalid credentials.
timing side-channel testsvault state leakage

8 min read
Should locked vault pending requests wait at all?
Locked vault pending requests need an explicit failure path, fresh user context after unlock, narrow retry rules, and audit records that explain every denial.
locked vault pending requestsAI agent approval

8 min read
Contractor-managed AI agents: end production access cleanly
Contractor-managed AI agents need clear process ownership, action approvals, credential boundaries, and a tested path to revoke production access.
contractor-managed AI agentsAI agent access

8 min read
Shell interpolation: stop agent input becoming commands
Shell interpolation lets agent-controlled paths and resource names become executable syntax. Build safer local and SSH actions with arrays and validation.
shell interpolationcommand injection

8 min read
How MCP schema drift breaks long-running agents
MCP schema drift can break long-running agents after a server changes tools. Test stale schemas, safe migrations, retries, outputs, and approvals.
MCP schema driftMCP tool schema

8 min read
Local agent action gateway health checks
Local agent action gateway health checks that verify app state, vault denial, HTTP and SSH canaries, and audit integrity without leaking credentials.
local agent action gateway health checksvault state check

8 min read
How concurrent AI agents collide on production accounts
Concurrent AI agents can overwrite each other in production. Set ownership boundaries, reject stale writes, use leases carefully, and audit every action.
concurrent AI agentsagent write conflicts

8 min read
Audit format upgrades that preserve old evidence
Plan audit format upgrades that preserve old evidence with explicit versions, immutable source bytes, migration fixtures, and compatible verifiers.
audit format upgradesaudit log schema versioning

8 min read
AI agent activity retention: records investigators trust
Set AI agent activity retention rules that preserve action evidence, limit sensitive data, stop tampering, and support incident investigations.
AI agent activity retentionagent audit logs

8 min read
SSH command success checks: prove remote work completed
SSH command success checks need more than a zero return code. Learn how to validate output, read back remote state, handle timeouts, and retry safely.
SSH command success checksSSH exit status

8 min read
URL encoding bugs: test agent API inputs before calls
URL encoding bugs can send an agent to the wrong API route or alter query data. Test paths, queries, percent escapes, and special characters first.
URL encoding bugsagent API security

8 min read
Separate SSH credentials for safer production access
Separate SSH credentials by development, staging, and production risk to limit remote access, prevent agent spillover, and make revocation practical.
separate SSH credentialsproduction SSH access

8 min read
HTTP redirect validation for authenticated agent requests
HTTP redirect validation keeps agent API credentials from crossing unapproved destinations, unsafe methods, DNS tricks, and hidden SSRF paths.
HTTP redirect validationauthenticated requests

8 min read
API Scopes for Autonomous Coding Agents That Contain Risk
Design API scopes for autonomous coding agents by mapping tasks to exact endpoints, testing denials, and keeping broad credentials out of reach.
API scopes for autonomous coding agentsagent least privilege

8 min read
GitHub release automation with AI agents and approval
GitHub release automation can save time without giving AI agents unchecked publishing power. Use drafts, scoped actions, confirmation, and audit trails.
GitHub release automationAI release agents

8 min read
AI agent offboarding checklist for controlled exits
Use this AI agent offboarding checklist to revoke local access, rotate shared credentials, hand over ownership, and preserve records for review.
AI agent offboarding checklistcredential rotation

8 min read
How to record canceled agent actions without lying
Define canceled agent actions with honest audit outcomes for timeouts, disconnects, and lost acknowledgments so unknown effects are investigated safely.
canceled agent actionsunknown effect audit outcome