Pro plugin

Claude Desktop

Collects Claude Desktop cached conversations, Cowork agent sessions and audit logs, MCP server configuration, extensions, logs, and application state

ai.claudedesktopPromacOS 12.0+v1.0.0aicommunicationuserexecution

Run this plugin

Trigger collection for Claude Desktop on its own with the --plugin flag, or include it in a wider sweep by category.

# Just this plugin
macfor-pro collect --plugin ai.claudedesktop --output ./evidence.zip

# Dry run — list what would be collected
macfor-pro collect --plugin ai.claudedesktop --dry-run

Compatibility

  • macOS 12.0+

Licensing: ships in the macfor-pro binary. See Community vs Pro.

Options

Set an option with --plugin-opt ai.claudedesktop.<name>=<value>. The flag is repeatable, and a value can be a literal, env:NAME (an environment variable), file:PATH (a file's contents), or literal:VALUE (a literal that starts with env: or file:). Use env: or file:for secrets so they stay out of shell history. Options are recorded in the container's manifest.json and chain of custody; values read from env: or file:, and values of secret-looking keys such as audit_key, are recorded only as [set].

macfor-pro collect --plugin ai.claudedesktop \
  --plugin-opt ai.claudedesktop.skip_content=true \
  --plugin-opt ai.claudedesktop.audit_key=env:CLAUDE_SAFE_STORAGE_PW \
  --output ./evidence.zip

Requires v0.2.0+. --plugin-opt was added in collector v0.2.0. Without it the plugin runs with the defaults below.

Privacy defaults

  • Secrets are redacted in records. Every record passes through redaction: values under secret-like keys (tokens, passwords, API keys, cookies, audit, device and link keys, salts), MCP server env values and token-shaped strings (sk-ant-…, Bearer tokens, JWTs, GitHub, AWS and Slack tokens) become [REDACTED:sha256:<8 hex>], so equal secrets still correlate across records. include_secrets turns redaction off.
  • Raw evidence files are copied byte-for-byte. Logs, IndexedDB and LevelDB stores, Cowork transcripts, audit logs, outputs and uploads go into the container unmodified as original evidence. Redaction applies to records, not to these copies. skip_content hashes and records the content files instead of copying them.
  • Secret-bearing files are not copied without include_secrets. claude_desktop_config.json, config.json, the Cookies databases, the device registry, bridge and remote-control state, extension settings and Sentry data are parsed into redacted records, but the files themselves stay out of the container. This also applies to include_raw.
  • safeStorage-encrypted values are recorded as present and never decrypted, cookie values are never emitted, and the Keychain is never read.

Content and privacy

OptionTypeDefaultEffect
skip_contentboolfalseMetadata only. Drops message, transcript, tool-input and tool-result text, prompts, account name and email, and storage values. Content files (Cowork outputs and uploads, transcripts, audit.jsonl, raw IndexedDB files) are hashed and recorded but not copied. Structure, counts and tool names remain.
include_secretsboolfalseTurns off redaction (MCP env values, tokens, .audit-key, device keys) and copies the secret-bearing configuration, cookie and state files into the container.
include_system_promptsboolfalseEmits full Cowork session system prompts. By default only system_prompt_sha256 is recorded.
include_storage_valuesboolfalseEmits every Local and Session Storage value. By default only an allowlist (default model, first-login flag) has values; other keys are listed without them. Values are still redacted unless include_secrets is set.
audit_keystringunsetThe examiner's Keychain “Claude Safe Storage” password, or an already-decrypted base64 Cowork audit key, used to verify the HMAC chains of Cowork audit logs. It is never logged or emitted. Without it, chains whose .audit-key is encrypted report key_encrypted. Pass it with env: or file: to keep it out of shell history.
verify_auditbooltrueVerifies Cowork audit HMAC chains. Set it to false to skip verification (status skipped).

Evidence scope

OptionTypeDefaultEffect
include_rawboolfalseCopies the whole Claude/ and Claude-3p/ application data trees and ~/Library/Logs/Claude/, file by file. VM images, embedded binaries and GPU and V8 caches are excluded, symlinks are not followed, and secret-bearing files are skipped unless include_secrets is set.
include_vmboolfalseCopies the Cowork VM bundle (multi-GB Linux images). By default each file is only recorded, with its size and a SHA-256 up to vm_hash_limit_mb.
vm_hash_limit_mbint512The largest VM bundle file, in MiB, that is hashed when include_vm is off. With include_vm every copied file is hashed.
http_cache_all_hostsboolfalseIndexes every HTTP cache entry, not just Anthropic hosts.

Skip artifacts

OptionTypeDefaultEffect
skip_conversationsboolfalseSkips IndexedDB and HTTP cache conversations.
skip_http_cacheboolfalseSkips the HTTP cache only.
skip_coworkboolfalseSkips Cowork sessions, audit logs, transcripts and spaces.
skip_cowork_filesboolfalseRecords Cowork outputs/ and uploads/ without copying them.
skip_configboolfalseSkips MCP and app configuration and extensions.
skip_logsboolfalseSkips all logs.
skip_stateboolfalseSkips application state, Sentry and updater artifacts.
skip_storageboolfalseSkips Local and Session Storage.
skip_cookiesboolfalseSkips cookie metadata.

Artifacts (21 collected)

Each row corresponds to an entry in the plugin's artifacts.yaml manifest. Optionalartifacts are often absent, and their absence isn't recorded as an error. Plannedartifacts are documented locations the plugin doesn't collect yet. Where a path shows a version range, macfor only tries it when the source's macOS or application version is in that range.

metadata

ArtifactFormatPathNotes
Claude Desktop Installation
claude_installOptionalSensitivemedium value
binary_plist/Applications/Claude.app/Contents/Info.plist
+4 more
  • ~/Applications/Claude.app/Contents/Info.plist
  • ~/Library/Application Support/Claude/Local State
  • ~/Library/Application Support/Claude/config.json
  • ~/Library/Preferences/com.anthropic.claudefordesktop.plist
App bundle versions (CFBundleShortVersionString, CFBundleVersion), config.json first_launch_at, Local State uninstall_metrics.installation_date2, and preference key names with redacted scalar values. The manifest schema has one format per artifact, so format names the primary (plist) sources and path_formats lists each path's format; sensitive because preference values and account UUIDs are recorded.
Claude Spaces
claude_spacesOptionalSensitivemedium value
json~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/spaces.json
+8 more
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/artifacts.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/scheduled-tasks.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/.project-cache/*/metadata.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/cowork_settings.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/cowork-policy-limits-cache.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/**/SKILL.md
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/.project-cache/*/files/
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/.project-cache/*/docs/
Spaces, generated artifacts, scheduled tasks, cached project metadata, and installed skills. format names the primary (JSON) sources; path_formats lists each path's format.
Claude Cowork VM Bundle
claude_vmOptionallow value
directory~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/Linux VM images (rootfs, sessiondata, kernel), machine identifier, MAC and IP; multi-GB.
Claude Raw Application Data
claude_rawOptionalSensitivemedium value
directory~/Library/Application Support/Claude/
+2 more
  • ~/Library/Application Support/Claude-3p/
  • ~/Library/Logs/Claude/
Opt-in raw copy of the application data tree, excluding VM images and GPU caches.

messaging

ArtifactFormatPathNotes
Claude Conversations (IndexedDB)
claude_conversations_idbOptionalSensitivehigh value
leveldb~/Library/Application Support/Claude/IndexedDB/https_claude.ai_0.indexeddb.leveldb/
+4 more
  • ~/Library/Application Support/Claude/IndexedDB/https_claude.ai_0.indexeddb.blob/
  • ~/Library/Application Support/Claude/WebStorage/*/IndexedDB/indexeddb.leveldb/
  • ~/Library/Application Support/Claude/WebStorage/*/IndexedDB/indexeddb.blob/
  • ~/Library/Application Support/Claude/WebStorage/QuotaManager
Cached conversation metadata and full message trees (text, thinking, tool use). Storage-bucket stores map to origins via the QuotaManager buckets table.

cache

ArtifactFormatPathNotes
Claude Conversations (HTTP Cache)
claude_conversations_cacheOptionalSensitivehigh value
binary~/Library/Application Support/Claude/Cache/Cache_Data/
+1 more
  • ~/Library/Application Support/Claude/Partitions/*/Cache/Cache_Data/
Cached claude.ai API responses: conversations, files, artifacts, projects, memory, Cowork and Code sessions.

session

ArtifactFormatPathNotes
Claude Cowork Sessions
claude_cowork_sessionsOptionalSensitivehigh value
json~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*.json
+3 more
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/agent/local_ditto_*
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/outputs/
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/uploads/
Agent session metadata (title, model, cwd, mounted folders, MCP tools, egress allowlists) plus output and uploaded files.
Claude Code Desktop Sessions
claude_code_sessionsOptionalSensitivehigh value
json~/Library/Application Support/Claude/claude-code-sessions/*/*/local_*.json
+4 more
  • ~/Library/Application Support/Claude/claude-code-sessions/*/*/scheduled-tasks.json
  • ~/Library/Application Support/Claude/claude-code-sessions/*/*/archived-sessions.idx
  • ~/Library/Application Support/Claude/git-worktrees.json
  • ~/Library/Application Support/Claude/git-worktrees.json.corrupt-*
Code session metadata (repository, cwd, branch) and git worktree registry.

logs

ArtifactFormatPathNotes
Claude Cowork Audit Log
claude_cowork_auditOptionalSensitivehigh value
jsonl~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/audit.jsonlTool use, tool results, permission requests/decisions, and run results; _audit_hmac chain verifiable with the sibling .audit-key.
Claude Main Logs
claude_logs_mainOptionalSensitivehigh value
text~/Library/Logs/Claude/main.log
+1 more
  • ~/Library/Logs/Claude/main[0-9].log
Main-process log, local time, continuation lines unprefixed.
Claude MCP Logs
claude_logs_mcpOptionalSensitivehigh value
text~/Library/Logs/Claude/mcp.log
+2 more
  • ~/Library/Logs/Claude/mcp-server-*.log
  • ~/Library/Logs/Claude/mcp[0-9].log
MCP server lifecycle, JSON-RPC traffic and stderr per server.
Claude Other Logs
claude_logs_otherOptionalSensitivemedium value
text~/Library/Logs/Claude/claude.ai-web*.log
+11 more
  • ~/Library/Logs/Claude/main-window.log
  • ~/Library/Logs/Claude/unknown-window.log
  • ~/Library/Logs/Claude/cowork_vm_node.log
  • ~/Library/Logs/Claude/cowork_vm_swift.log
  • ~/Library/Logs/Claude/swift.log
  • ~/Library/Logs/Claude/coworkd.log
  • ~/Library/Logs/Claude/cowork_host_loop_debug.log
  • ~/Library/Logs/Claude/ssh.log
  • ~/Library/Logs/Claude/remote-control.log
  • ~/Library/Logs/Claude/in-app-browser.log
  • ~/Library/Logs/Claude/vzgvisor.log
Renderer console, Cowork VM/host loop, SSH, remote-control and in-app browser logs.
Claude Sentry Scope
claude_sentryOptionalSensitivemedium value
json~/Library/Application Support/Claude/sentry/scope_v3.json
+1 more
  • ~/Library/Application Support/Claude/sentry/queue/queue-v2.json
Sentry user ID, app/boot times, OS version, timezone, and navigation breadcrumbs.
Claude Updater
claude_updaterOptionalSensitivemedium value
binary_plist~/Library/Caches/com.anthropic.claudefordesktop.ShipIt/ShipItState.plist
+3 more
  • ~/Library/Caches/com.anthropic.claudefordesktop.ShipIt/ShipIt_stderr.log*
  • ~/Library/Caches/com.anthropic.claudefordesktop/Cache.db
  • ~/Library/Preferences/com.anthropic.claudefordesktop.plist
Update history (staged/installed versions and times), updater NSURLCache index, and app preferences. format names the primary (plist) sources; path_formats lists each path's format. Sensitive because NSURLCache URLs and preference values may carry identifiers or tokens.

command history

ArtifactFormatPathNotes
Claude Cowork Transcripts
claude_cowork_transcriptsOptionalSensitivehigh value
jsonl~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/.claude/projects/*/*.jsonl
+5 more
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/.claude/tasks/*/*.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/.claude/.claude.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/.claude/settings.json
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/.claude/backups/.claude.json.backup.*
  • ~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/.claude/projects/*/*/subagents/*.jsonl
Claude Code JSONL transcripts (messages, tool calls, results) and agent task lists.

persistence

ArtifactFormatPathNotes
Claude MCP Configuration
claude_mcp_configOptionalSensitivehigh value
json~/Library/Application Support/Claude/claude_desktop_config.json
+1 more
  • ~/Library/Application Support/Claude-3p/claude_desktop_config.json
MCP servers (command, args, env) launched by the app — a persistence/execution vector; env values may hold secrets.

config

ArtifactFormatPathNotes
Claude App Configuration
claude_app_configOptionalSensitivemedium value
json~/Library/Application Support/Claude/config.json
+1 more
  • ~/Library/Application Support/Claude/config.json.journal
First launch, version history, running instance, last quit, last known account UUID, DXT allowlists.
Claude Application State
claude_stateOptionalSensitivemedium value
json~/Library/Application Support/Claude/bridge-state.json
+10 more
  • ~/Library/Application Support/Claude/remote-control-state.json
  • ~/Library/Application Support/Claude/dispatch-footprint-census.json
  • ~/Library/Application Support/Claude/buddy-tokens.json
  • ~/Library/Application Support/Claude/ant-device-registry.json
  • ~/Library/Application Support/Claude/ant-did
  • ~/Library/Application Support/Claude/cowork-enabled-cli-ops.json
  • ~/Library/Application Support/Claude/vm-support-probe.json
  • ~/Library/Application Support/Claude/window-state.json
  • ~/Library/Application Support/Claude/design
  • ~/Library/Application Support/Claude/spaces-present/
Remote-control bridge, device registry/ID, token usage, CLI ops and window state; secrets redacted.

extensions

ArtifactFormatPathNotes
Claude Extensions
claude_extensionsOptionalSensitivehigh value
json~/Library/Application Support/Claude/Claude Extensions/*/manifest.json
+5 more
  • ~/Library/Application Support/Claude/Claude Extensions Settings/*.json
  • ~/Library/Application Support/Claude/extensions-installations.json
  • ~/Library/Application Support/Claude/extensions-blocklist.json
  • ~/Library/Application Support/Claude/developer_settings.json
  • ~/Library/Application Support/Claude/mcp-user-tool-toggles.json
Installed extensions (MCP bundles) with hashes and settings; per-tool enable toggles.

storage

ArtifactFormatPathNotes
Claude Web Storage
claude_web_storageOptionalSensitivemedium value
leveldb~/Library/Application Support/Claude/Local Storage/leveldb/
+1 more
  • ~/Library/Application Support/Claude/Session Storage/
Local/Session Storage keys (drafts, default model, first-login flags); values only for an allowlist by default.

cookies

ArtifactFormatPathNotes
Claude Cookies
claude_cookiesOptionalSensitivemedium value
sqlite~/Library/Application Support/Claude/Cookies
+1 more
  • ~/Library/Application Support/Claude/Partitions/*/Cookies
Cookie host, name, path and timestamps; encrypted values are never decrypted or emitted.