piso.

AI security workshop · 19 October 2026

Exit presentation

piso · AI security workshop

Run agents
with boundaries

Monday 19 October 2026 · 17:00 UTC · online

git clone https://github.com/piso-dev/piso

Hands-on. Install while we start; we build together in a few minutes.

Worker
Code · tools · project mount
Credential gateway
Real credentials
Held outside the worker

Today

What we'll cover

About ten minutes of setup, roughly fifteen minutes of talk, then we switch to the terminal.

  1. The problem
  2. What piso is
  3. How it solves it
  4. See it work — then hands-on and Q&A

The problem

Agents can see
all your secrets

An agent working in your repo and shell can read every credential it can reach — and it usually reaches a lot.

  • .env and config files
  • Shell history
  • ~/.ssh keys
  • Cloud CLI credentials
  • API tokens in source
  • Environment variables
The agent

The problem

Agents can access
your private machine

An agent running on your laptop inherits your user account. Your home directory, browser sessions, keys, other projects, and every local service are all within reach.

The agent

Your private machine

  • Home directory
  • Photos and documents
  • Browser profiles
  • SSH keys
  • Other projects
  • Local services and ports

What is piso?

A place to run agents
with real work to do

piso runs an AI agent inside an isolated worker, routes its access through a credential gateway, and keeps a human on the decisions that matter.

Isolated worker

A container per task, with one project directory mounted and nothing else.

Credential gateway

The agent holds placeholders; the real keys stay outside its reach.

Human oversight

Approvals and host actions stop and wait for a person.

The solution · Isolation

The worker is not
your machine

One project directory is mounted read-write. Everything else stops at the container boundary.

What a worker can reach, compared with the host it runs on.
ResourceWorker containerHost machine
FilesystemIts own container filesystemShares exactly one mounted project directory
Home directory, SSH keysNot presentNever mounted or copied into the worker
CredentialsPlaceholders such as piso_…Real values held by the gateway
Outbound networkProxied through the credential gatewayGateway checks the destination and substitutes
Listening portsOnly when a route is publishedRoute maps one worker port to a browser URL
LifetimeDisposable; caches and temp files stay insideOutlives the worker and decides when it stops

The solution · Credentials

Placeholders go in.
Keys stay out.

The worker's files and environment hold only placeholder strings. The gateway substitutes the real value on the way out — after checking the destination.

Worker

piso_… placeholder

Gateway

Scope check · substitution

Service

Authenticated request

The solution · Credentials

Set up outside,
scoped to the task

Register a credential with the gateway and scope it to a destination. The worker only ever sees the name.

Access → Secrets, with synthetic entries and masked values.

The solution · Credentials

A block is a decision,
not an error

Requests that match the detection rules stop, with the reason attached. Read it before you change anything.

A blocked synthetic credential request and its reason.

The solution · Oversight

Some steps stop
for a human

Approvals and host actions cross the boundary — and wait for you.

A pending human approval with its exact action and scope.

The solution · Oversight

Watch what moved,
not every terminal

Workers report progress, milestones, and blockers to the board.

Project board showing progress, a milestone, and a blocker.

Straight talk

What isolation
doesn't cover

Isolation shrinks the blast radius. It does not remove risk.

Keep in the model

  • The mounted project is writable, so changes still need review.
  • An authorized service can be misused within its scope.
  • A service can return sensitive data the agent then handles.
  • Detection rules do not catch every leak.
  • Host and gateway security decide the real boundary.

Let's see how it works

Four steps, live

Watch the boundary hold while the agent does real work.

Switch to the terminal — the deck can wait here.

  1. Start a worker on a disposable demo project.
  2. Let it read something you didn't write.
  3. Send a request through a scoped placeholder.
  4. Stop at the block or approval and decide together.

Your turn

Now you try it

  1. Bring up your own worker.
  2. Make a change and review the diff.
  3. Add one scoped credential.
  4. Trigger a block and read the reason.

Questions and threat models welcome. Write-up and install instructions are on the marketing site.