For every agent

After it does something wrong

An agent with real tools can delete the wrong file, send the wrong message, or loop on a paid key. Once the run has stopped, this page helps you revoke access, check what changed, and restore what you can. Everything here is practical cleanup for your own computer and accounts, not legal or forensic advice. Facts and file paths on this page were checked on 14 November 2026.

When to use this page

Use this page when your agent is already stopped and it did something you did not want. If it may still be running in a window, gateway, or container, stop it first on its Fixes page.

Once nothing is still running, work through the six steps below in order.

Six steps, in order

1. Revoke access

Deleting a key on your computer does not stop it if the provider still accepts it. Revoke every key, token, connector, and sign-in at the service that issued it. Use your agent's row in the table below so you do not miss anything.

What you should see every key, bot token, remote link, connector, and subscription sign-in shows as deleted or revoked on the provider's website.

2. See what it did

Read the agent's history and logs before you uninstall it or delete its state folder. Wiping that folder first erases your only record of what ran. Check all three places listed for your agent in the table below.

What you should see a short list of the files, folders, commands, websites, and accounts the agent actually touched.

3. Get files back

Look for copies from the closest place outward, and open each restored file yourself to check its contents.

What you should see recoverable files restored and checked by you, plus a clear note of any unbacked-up files that cannot return.

4. Check for charges and lower the spend cap

A stuck loop or a burst of sub-agents can send dozens of long prompts in minutes. Open the usage page for every paid provider, relay, tool, and chat plan the agent could reach. Check today's token total and dollar charges, even if you already deleted the key in Step 1.

Lower your monthly spend limit, or OpenRouter key limit, using Mix a cheap model with a strong one. Google AI Studio caps take about 10 minutes to act, and OpenAI hard limits can lag slightly. For a chat plan or GitHub Copilot, open ChatGPT Settings → Usage, Claude billing, or GitHub's billing page. Turn extra spending past your plan limits off, as shown on Subscription sign-ins.

What you should see today's usage and charges reviewed on every billing page, extra plan spending off, and every spend cap lowered.

5. If an account was touched

Follow this step if the agent used your email, calendar, drive, workspace, chat, or store account, or a signed-in browser.

Open that account in a clean browser window, set a new unique password, and check two-step verification. Read Sent, Trash, mail forwarding rules, shared links, recent posts, and orders to see what went out. Then use the account's security page to sign out all other sessions and devices. Clear cookies in the browser profile the agent used so a saved cookie cannot keep acting without your password.

What you should see a new password set, other sessions signed out, and sent mail and recent activity reviewed.

6. Before restarting, tighten the setting that allowed it

Do not make a new API key or restart the agent until you fix the setting behind the mistake.

Turn manual approvals back on, and clear any saved Always allow or command-prefix rules. Switch off scheduled jobs and chat-app channels if the mistake happened while nobody was watching. Move host runs into a container, a virtual machine, a standard user account, or one backed-up folder of copies. Remove any skill or MCP server you do not trust, and inspect your persona and rules files and saved memory. Step down one rung on Safety versus capability, and apply the switches on Host access and unattended runs. Create a fresh key only when you are ready, and run one small watched test job first.

What you should see approvals on, schedules and unused tools off, a safe folder or container set, and one small test job finishing cleanly.

Where each agent keeps logs, keys, and undo tools

Each agent's name links to its Fixes page, which also covers safe updates and full uninstalls. On Windows, ~ means your user folder (%USERPROFILE%).

Agent History and logs Keys and tokens to revoke Undo or restore
Agent Zero Chat history in /a0/usr/chats/ inside the container (~/agent-zero/<instance>/usr/chats on your computer with Launcher, or the a0_usr Docker volume). Run logs via open logs on the Launcher instance card; update log at /exe/a0-self-update.log. Provider and relay API keys in Settings; secrets in /a0/usr/secrets.env and project secrets; Telegram bot token and webhook secret; WhatsApp QR-linked device; IMAP, Exchange, or SMTP email login; Codex/ChatGPT, GitHub Copilot, Google Cloud Gemini, and xAI Grok account sign-ins; web UI login and password (Settings → Authentication, default 12345678); any active Flare tunnel (Settings → External Services → Flare Tunnel); and keys or accounts in External MCP Servers or Plugins. Time Travel snapshots /a0/usr so workspace files can be compared and rolled back (not a replacement for Git or backups). Backup & Restore (Settings → Check for updates) and Launcher's Restore /a0/usr restore saved backups.
Atomic Agent State folder ~/.atomic-agent (%USERPROFILE%\.atomic-agent on Windows): sessions.sqlite holds chat transcripts, tasks.sqlite holds scheduled tasks, traces/ holds unredacted NDJSON traces of turns, prompts, and tool calls, and /dump writes a debug zip in Documents/atomic-agent-debug. Cloud provider API keys (including both providers in Fusion), search keys (EXA_API_KEY), GitHub token, and optional ATOMIC_AGENT_API_KEY or ATOMIC_AGENT_LLAMA_API_KEY in plaintext .env and config.json (plus any data backup .tar.gz); Telegram bot token and Discord channel token; Atomic Mail inbox and Composio connected accounts (such as Gmail or Slack); cookies in .atomic-agent's browser profile, or signed-in Chrome if opt-in Chrome tab mode was on; MCP servers (Settings › Connections › MCP servers or mcp.servers); signed-in Claude Code or Codex apps; and saved Always allow rules in approval-rules.json (Settings › Privacy). Built-in file tools move removed files to the Trash or Recycle Bin (os.fs.trash) and keep up to 20 pre-overwrite copies per folder for files up to 5 MB (os.fs.restore), though shell commands are not covered. atomic-agent data backup and atomic-agent data restore --yes back up and restore .atomic-agent, and atomic-agent doctor --undo restores the newest settings backup.
Hermes Agent Home folder ~/.hermes on a Mac and %LOCALAPPDATA%\hermes on Windows: chat history in state.db, session files in sessions/, and secret-redacted logs in logs/ (errors.log, gateway.log, update.log). API, relay, and search keys plus gateway channel tokens (Telegram, Discord, Slack, WhatsApp, Signal, email, and others) in .env and each profile's profiles/<name>/.env (plus ~/hermes-backup-*.zip archives); WhatsApp linked device if paired; OAuth and plan sign-ins in auth.json or profiles/<name>/auth.json (Nous Portal and Hermes Cloud, ChatGPT or Codex Subscription, Anthropic / Claude Max or reused Claude Code login, OpenRouter, and SuperGrok); copied browser logins if Use My Real Browser Profile was turned on; and keys or accounts in MCP servers (hermes mcp or mcp_servers: in config.yaml). Checkpoints (checkpoints/ in the Hermes home, /rollback in chat), off by default (hermes chat --checkpoints or checkpoints.enabled: true in config.yaml). Needs Git, stays off on the Docker backend, and misses some commands. hermes backup zips Hermes's state.
OpenClaw Transcripts in ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite (older files in sessions/). Logs in ~/.openclaw/logs/openclaw-YYYY-MM-DD.log (~/.openclaw/tmp/openclaw-<uid> or tmp/openclaw on Windows), or openclaw logs --follow. Provider, relay, and search keys, Gateway tokens, OAuth profiles (OpenAI, Sign in with ChatGPT, Codex, GitHub Copilot, OpenRouter, and any legacy Google or Anthropic profile), and channel tokens across ~/.openclaw/openclaw.json, secrets.json, state/openclaw.sqlite, per-agent openclaw-agent.sqlite, and credentials/ (plus backup archives); Claude Code login (claude auth login) for Claude CLI; Telegram and add-on channels (such as WhatsApp, Discord, Slack, or Signal); cookies in the openclaw browser profile, or signed-in Chrome if the user profile was used; remote Gateway links (such as Tailscale Serve) for the OpenClaw phone app; and MCP servers (Settings → MCP). None found that undoes single files changed in your folders. openclaw backup create archives OpenClaw state, credentials, sessions, and workspace, and openclaw backup sqlite snapshots its databases (openclaw update keeps only a config copy).
Goose Command history in ~/.config/goose/history.txt (%APPDATA%\Block\goose\data\history.txt on Windows); messages and tool calls in ~/.local/share/goose/sessions/sessions.db (%APPDATA%\Block\goose\data\sessions\sessions.db on Windows); logs in ~/.local/state/goose/logs/ (%APPDATA%\Block\goose\data\logs\ on Windows). Provider, relay, and search API keys (including OpenRouter, Tetrate Agent Router, or Tavily) in Windows Credential Manager or macOS Keychain item "goose" (or plain-text secrets.yaml and environment variables if keyring is unavailable); subscription sign-ins for ChatGPT Subscription (ChatGPT Codex) or Codex ACP, Claude ACP (through Claude Code), GitHub Copilot, and Cursor Agent; TELEGRAM_BOT_TOKEN for the experimental Telegram gateway; and service logins or keys in Extensions (MCP servers) or a signed-in browser. None found for file changes; the docs say to use version control to revert edits yourself. Session fork starts a new chat branch from an earlier message without undoing file changes.
NanoClaw Host logs in ~/nanoclaw/logs/nanoclaw.log and nanoclaw.error.log. Agent database in data/v2.db and session traffic in data/v2-sessions/<session>/<session>/inbound.db and outbound.db; past chats in groups/<folder>/conversations/ and memory in groups/<folder>/memory/. Anthropic API key, Claude subscription OAuth token, and host-matched secrets or OAuth apps (such as GitHub or Gmail) in the OneCLI Agent Vault dashboard; ONECLI_URL, ONECLI_API_KEY, and chat-app tokens in .env and .env.bak (Telegram TELEGRAM_BOT_TOKEN, WhatsApp, Slack, Discord, and other /add- channels such as Teams, Matrix, Linear, GitHub, or Resend email); OpenCode provider keys (OpenRouter, DeepSeek, OpenAI, Google, Anthropic), ChatGPT / Codex sign-ins, or Cursor add-on; Claude Code sign-in; ~/.config/nanoclaw/account.json registry token; persistent sign-ins in the container's Chromium browser (agent-browser); and MCP server keys. None found for ordinary files changed inside groups/ or shared folders. Supported updates snapshot .env, data, groups, and store, restorable with pnpm exec tsx scripts/update-nanoclaw.ts rollback --id <id>.
QwenPaw Chat history in ~/.qwenpaw/workspaces/<agent>/chats.json (default workspaces/default/chats.json), conversation copies in mem_session/, plus Execution Records for scheduled tasks. Logs at ~/.qwenpaw/desktop.log and ~/Library/Logs/io.agentscope.qwenpaw.desktop/qwenpaw-desktop.log on a Mac, %USERPROFILE%\.qwenpaw\desktop.log and %LOCALAPPDATA%\io.agentscope.qwenpaw.desktop\logs\qwenpaw-desktop.log on Windows, or qwenpaw daemon logs. Model, relay, and search API keys (Tavily or Firecrawl) in ~/.qwenpaw.secret (or Docker volume qwenpaw-secrets, and inside any Full Backup zip in ~/.qwenpaw.backups/ or qwenpaw-backups); channel credentials in workspace agent.json (Telegram and Discord bot_token, DingTalk client_id and client_secret, Feishu app_id and app_secret, WeCom bot_id and secret, QQ app id and client secret, WeChat test link, iMessage access plus macOS Full Disk Access, and mail credentials); MCP server keys (Workspace → MCP); saved sign-ins in the workspace avatar browser profile; and the Beta Chrome extension in signed-in Chrome. No file-level checkpoint outside backups. Settings → Backups (called Backup in the docs) restores saved agent backups from ~/.qwenpaw.backups/, and /dump_history and /load_history save and reload chats (loading clears current memory).
Eigent Download logs saves the Eigent log (desktop app) and Camel log (task logs under ~/.eigent/<identity>/[project_<id>/]task_<taskId>/camel_logs), alongside Automations execution logs; memory files live under ~/.eigent/memory/users/ (and Memory Sync on your Eigent account). Model and relay API keys; Eigent account sign-in; Connectors (Notion, Slack, Google Calendar, Gmail, LinkedIn, Lark, and self-hosted Google Custom Search) and custom MCP servers; imported browser Cookies and connected browsers (Settings → Device); Remote Control links (Revoke link in Dispatch); Event Automation webhook URLs; encrypted workspace secrets in ~/.eigent/secure; and remote sub-agent API keys (BytePlus ModelArk under Settings → Sub-agents). A Space can turn on local Git version history, and task file backups are kept for change review, though this guide could not confirm a button that restores a file. Memory notes can be archived and restored.
Everfern Chat history in ~/.everfern/sql/chat.sqlite, memory in ~/.everfern/sql/memory.sqlite and ~/.everfern/memory.md, screenshots in ~/.everfern/screenshots/, logs in ~/.everfern/logs, and crash logs in Electron's crash-logs user-data folder (folder name on disk not confirmed). Model and OpenRouter keys in ~/.everfern/store and ~/.everfern/config.json; search API keys (Exa or Firecrawl) and optional Deepgram key under ~/.everfern/; EverFern Cloud sign-in; Navis browser extension in Chrome or Firefox (uses your normal browser profile); MCP servers or accounts connected by connect_mcp_server (such as Gmail, Slack, Google Drive, GitHub, PostgreSQL, or Spotify) and account skills; and saved Always allow or Allow prefix rules in ~/.everfern/tool-approvals.json (Revoke All under Tool Permissions). README says a failed step gets an automatic rollback, and a SQLite checkpointer resumes chats, but this guide could not confirm a button that restores user files. Forget Memory removes single memories.
OpenManus Keeps nothing between jobs; each run writes a date-and-time log in OpenManus/logs/, and workspace files sit in OpenManus/workspace/. Model and relay API keys in [llm] and [llm.vision] in config/config.toml; Daytona key (daytona_api_key) plus any live Daytona sandbox VNC link and VNC_password (default 123456); optional Browser Use cloud key (BROWSER_USE_API_KEY); MCP servers in config/mcp.json; and signed-in websites (plus chrome://inspect/#remote-debugging if enabled) in your own Chrome or Chromium, which local browser mode attaches to. None found.

If you used CLIProxyAPI or EasyCLIProxyAPI with any agent, stop that proxy and revoke its sign-ins in ~/.cli-proxy-api.

Agent Zero's container boundary

When Agent Zero runs in its container with Host access off, its commands and file tools reach only /a0/usr. With Launcher's default setup, /a0/usr maps only to ~/agent-zero/<instance>/usr on your computer, or to the Docker volume a0_usr. Files outside mapped folders, including Desktop, Documents, and Pictures, were never inside the container, so Agent Zero never touched them.

Check two things anyway. If Host access was on or you mounted another folder, check those host folders and your user account too. Also remember that the container walls off local files, not the internet, so still revoke keys and check bills.

Trade-offs: cleanup and recovery

Built-in agent checkpoints and snapshots.

Keeping logs and state folders until you read them.

Revoking every key and login instead of only stopping the agent.

Sources

Checked 14 November 2026.

Next

Checked 14 November 2026 · prices, limits, and versions change