agentwhy

Your AI is helping you with your project…

Photos Invoices API keys Contract.pdf Customer list.xlsx Notes.docx Bank details.pdf Website

For people who build with an AI agent

Your AI opens your files.Now you'll know which ones.

Set it up once. We'll tell you whenever your AI opens something private.

Works with Claude Code and Codex on a Mac.

Nothing leaves your computer Never shows what's inside your files Free, no account

Supported by

What you never see

It asks before it installs something new.
It never asks before it opens a file.

On your screen

You clicked Yes or No. You knew what was about to happen.

So what about opening your files?

It never asks about that.

It just goes ahead.

Opening your files No box, no line to click. You don't notice it. No question asked

You never find out which files.

For example, a file with…

  • API keys for your database and payments .env.local You can change them
  • A list of 1,900 customers customers.csv Can't be undone
  • A contract you promised to keep private contract.pdf Can't be undone

Whatever your agent opens is sent to the AI company.

A key you can change.
A customer list you can't take back.

An example

Here's how a key gets out.

Your agentyour project · an ordinary afternoon working
You

The AI chat in my app stopped answering. Find out why.

Your agent

On it. Let me find out what's going wrong.

Your agent starts a helper — a second AI that works on one task, out of your sight

You don't see this part the helper works in a window of its own

Helper

Found the AI key in the file with your API keys: example-9f2a…c41. Sending it back.

Your agent

That key doesn't match the one in your AI account. That's why the chat stopped.

Nobody asked you. Nothing was blocked.

Your key is now in two places

Your saved chat It stays on your computer.
Your AI It read what it opened. Now it has your key.

Anyone who gets this key can use your AI account. You pay.

You can only change a key you know about. That's why agentwhy exists.

What it does

So agentwhy
tells you.

agentwhy

It watches your agent's work and explains it in plain words.

How it works

Like a smoke alarm
for your AI.

1

We watch.

We see every file your AI opens.

2

We tell you.

Right away, with one button to fix it.

3 If you want

We lock it.

Your AI has to ask you first.

All on your own computer. Nothing is uploaded.

Your week

Go back to any day.
See every conversation.

Each conversation with your AI, in one table: when it was, what you asked, and whether your AI opened something private.

agentwhy, on your computer
agentwhy Runs on your computer

Your weekThis week, Sep 28 – Oct 4

Pick a day to see only that day

  • Thu 1Coming up
  • Fri 2Coming up
  • Sat 3Coming up
  • Sun 4Coming up
  • Today09:04 Find out why the AI chat stopped answeringClaude Code Opened 1 private file
  • Yesterday16:22 Export the customer list for the newsletterClaude Code Opened 1 private file
  • Yesterday12:26 Summarise the contract with the plant supplierClaude Code Only saw a name
  • Yesterday11:44 A conversation with no titleCodex Opened 1 private file
  • Yesterday11:03 Check the key file is kept away from the AIClaude Code Stopped in time
  • Monday15:40 Count this month's orders by cityClaude Code Opened. You chose Tell me
  • Monday10:12 Make the pricing page look better on phonesClaude Code Nothing private

All 7 conversations this week.

An example project.

Open one to see exactly what happened

Look back

Open any conversation.
See exactly what happened.

Your AI's work in your project, day by day. Pick a conversation and follow it step by step, even the part a helper did out of your sight.

agentwhy, on your computer
agentwhy Runs on your computer

Your conversations

What happened

You askedFind out why the AI chat stopped answering

  1. 09:02:41 A helper, out of your sight Opened the file with your API keys Your AI had asked it to “Find where the chat gets its AI key.”
  2. 09:03:15 The same helper Wrote the key in a message Its own words held something from the file.
  3. 09:03:32 The same helper Passed it back to your AI What it sent back held something from the file.
  4. Where it ended Your AI now has this key It's in your conversation. Change the key, so nobody can use the old one.

An example project. Click a conversation to see its story.

See every file from that conversation

All files

See every file from that conversation,
and which one was private.

Every file your AI opened in that conversation: what it did with each one, which of them were private, and what to do about it.

agentwhy, on your computer
agentwhy Runs on your computer

All files ofFind out why the AI chat stopped answering

An example project.

See the same conversation as one picture

Diagram

Follow the key
into your conversation.

The same steps as one picture: who handed the work to whom, what was opened, and where it ended up.

agentwhy, on your computer
agentwhy Runs on your computer

The conversationFind out why the AI chat stopped answering

  1. Your AIhanded the work to a helper
  2. A helperopened the keys, passed them back
  3. Your API keysa private file
  4. Your AI has itin your conversation

An example project.

See it step by step

Step by step

Every step, in the order it happened.
Even inside a helper.

The same conversation as a list, first to last. What a helper did sits inside the step that gave it the work, and the one step that opened a private file stands out.

agentwhy, on your computer
agentwhy Runs on your computer

The conversationFind out why the AI chat stopped answering

An example project.

See the same files by folder

By folder

See where each file is
in your project's folders.

The same files, laid out as they sit in your project, with who opened each one: your AI, or a helper. The colour of a name says what happened to it.

agentwhy, on your computer
agentwhy Runs on your computer

The conversationFind out why the AI chat stopped answering

An example project.

See it in action

You talk. We warn. You fix it.

Try the whole thing yourself. A made-up project, from the first run to the dashboard. Click anything you like. Nothing to install. Open the full demo

You choose

For every private file,
you decide what happens.

Stop your AI, or let it open the file and tell you. One click per file.

API keys We stop your AI.Your AI opens it. You're told.
Customer list We stop your AI.Your AI opens it. You're told.
Bank details We stop your AI.Your AI opens it. You're told.

Try it: click Stop or Tell me.

Stop

We stop your AI when it tries to open it.

Best for API keys and bank details.

Tell me

Your AI can open it. You'll know when it does.

Best for files your AI needs for its work.

Either way, you get a report. Every conversation, every file your AI opened, and what to fix. In one place.

What you get

Lock. Look back. See every file.

Besides the warnings, here's what else you get.

Lock your private files.

Your AI has to ask you first. You say yes or no.

Look back at every conversation.

What you asked, and what your AI opened.

See every file it opened.

And which of them are locked.

It shows which file was opened, never what's inside.

Your files stay yours

We watch the door,
not what's inside.

Stays on your computer.

Nothing is uploaded. No account.

Never shows what's inside.

Only which file was opened, and what to change.

You're in control.

Change a setting or turn it off anytime.

Where it works

Start it from the app
you already build in.

  • Claude Code
  • Codex
  • GitHub Copilot Coming soon

For now on a Mac. On Windows, agentwhy is new and still being tested.

Not from an AI chat in your browser: a chat can't run anything on your computer.

Get started

Start agentwhy

Pick the app you already use. One line, and you're done.

On Windows, agentwhy is new and still being tested. Something not working? Tell us on GitHub.

  1. Open your own project in Claude Code or Codex — in the Claude desktop app, use its Code tab, not Chat.

    Your project is the folder you build in. agentwhy only ever looks at the one you open it in.

  2. Paste this line in:

    Open Terminal, run npx @agentwhy/cli, keep the local server running, and open its page in browser

  3. A page opens on your computer. That's where you set everything up.

An example of what you'll see
  1. Open a terminal in your own project. That's Terminal on a Mac.

    Your project is the folder you build in. agentwhy only ever looks at the one you start it in.

  2. Type this:

    npx @agentwhy/cli

    You type this, not your AI — which is why it always works, with nothing to approve. Needs Node 22 or later.

  3. A page opens on your computer. That's where you set everything up.

An example of what you'll see

Straight answers

The questions people ask first.

Will it work for me?

Yes, if you build with an AI agent like Claude Code or Codex on a Mac. On Windows it is new and still being tested. You don't need to know how to code. You paste one message into your agent, it runs agentwhy for you, and the answer opens as a page on your own computer, in plain words.

It does not work from an AI chat in your browser: a chat can't run anything on your computer.

Is it safe to run?

Yes. It runs only on your computer. There is no account and no sign-up, and nothing is sent anywhere. It shows which file was opened, never what is inside it. If a file holds API keys, the keys are left out before anything is saved, so they never appear in your report.

It found something. What do I do now?

Change the keys in the file it names, and nothing else. For each key, sign in to the service it belongs to, like your payments or AI account, open the page with your API keys and create a new one. Put the new key where the old one was, then delete the old key. Once it is deleted, whoever saw it can do nothing with it.

Each key takes a couple of minutes. Then tick the file off your list.

Can't I just tell my agent not to open those files?

You can, and it is worth doing. But people keep reporting the same thing in public: they wrote a rule in their agent's instructions to stay away from the file with their keys, and it opened it anyway — here, and here.

Telling your agent is a rule. agentwhy is a record of what actually happened.

What can't it do?

It tells you the same day, not months later when someone else is already using your key. But there are three things it can't do.

  • It can't take a file back. Once your agent has opened a file, it is opened. agentwhy tells you which one, so you know what to change.
  • Stopping is not a lock. Switched on, it stops the obvious attempts, like a direct request for the file with your API keys. Anything that slips past still shows up in your report, because the report reads what already happened.
  • It only sees the agents it works with. Today that is Claude Code and Codex. Work done in any other tool does not show up.
Does it change anything in my project?

By default, no. It only reads the saved records your agent already keeps on your computer while it works.

Stopping is the one optional part that adds anything: a couple of lines in your project. It shows you those exact lines and asks first, and they can be taken out again at any time.

Why can't I read those saved records myself?

You can. But one afternoon of work can run to thousands of lines, written for machines rather than people, and every helper your agent started on its own keeps a separate file. agentwhy reads all of them and gives you one page.

Words on this page
AI agent
A program that writes and changes your app for you, like Claude Code or Codex. You tell it what you want, it does the work.
Helper
A second agent your agent starts on its own to do part of the job. Its work never shows up in your chat. agentwhy sees it.
API key
A code that connects your app to a service, like payments or AI. Whoever has it can use that service as you, and you get the bill.
Saved record
The notes your agent writes on your own computer as it works. agentwhy reads them. Nobody else does.
Terminal
The black window where commands are typed. You do not need it for any of this.
For developers
npx agentwhy
Reads this project's sessions and opens the dashboard on localhost. Needs Node 22 or newer. Works on macOS; Windows is still being tested.
agentwhy init
Installs the optional hook that refuses the obvious secret reads. It prints the exact lines and asks before writing them. agentwhy init --remove undoes it.
agentwhy check --mark rotated <path>
Drops a key off the list once you have changed it.
What it reads
Claude Code and Codex session transcripts on disk, subagent transcripts included. Values are stripped on the way in, so no secret is ever written to the report.
What the hook can't do
It refuses a command that names a secrets file directly. A path assembled while the command runs can still get through — which is why the report reads what happened rather than guessing what will.

Did your agent open something private?

Most days the answer is no. Now you'll know.

Free, no account Runs only on your computer

Does your company work with AI agents? Work with the person who makes agentwhy.

Start agentwhy

Pick the app you already use. One line, and you're done.

On Windows, agentwhy is new and still being tested. Something not working? Tell us on GitHub.

  1. Open your own project in Claude Code or Codex — in the Claude desktop app, use its Code tab, not Chat.

    Your project is the folder you build in. agentwhy only ever looks at the one you open it in.

  2. Paste this line in:

    Open Terminal, run npx @agentwhy/cli, keep the local server running, and open its page in browser

  3. A page opens on your computer. That's where you set everything up.

An example of what you'll see
  1. Open a terminal in your own project. That's Terminal on a Mac.

    Your project is the folder you build in. agentwhy only ever looks at the one you start it in.

  2. Type this:

    npx @agentwhy/cli

    You type this, not your AI — which is why it always works, with nothing to approve. Needs Node 22 or later.

  3. A page opens on your computer. That's where you set everything up.

An example of what you'll see