Cursor Agent v2026.07.09-a3815c0 Tip: Use /config to customize Cursor settings and behavior.
give a good detail explanation of every files in this directory and its subdirectories.
Exploring the workspace directory structure and reading key files to produce a detailed explanation of each one.
Globbed "**/*" in .
Found 148 files
$ find /home/ubuntu/.cursor -type f 2>/dev/null | head -500 | sort 1.3s … 186 output lines hidden · ctrl+o to expand /home/ubuntu/.cursor/skills-cursor/update-cursor-settings/SKILL.md /home/ubuntu/.cursor/statsig-cache.json
Reading representative files from each major section to explain their purpose and structure.
Read 8 files
… 5 earlier items hidden
Read .../2da7b294-0888-4db6-bb49-8aff431c9089/meta.json
Read ...0888-4db6-bb49-8aff431c9089/prompt_history.json
Read projects/home-ubuntu-cursor/.workspace-trusted
$ find /home/ubuntu/.cursor -type d | sort && echo “—” && find /home/ubuntu/.cursor -type f | wc -l 420ms … 105 output lines hidden · ctrl+o to expand — 188
Read 4 files
Read ...9089/2da7b294-0888-4db6-bb49-8aff431c9089.jsonl
Read projects/home-ubuntu-cursor/worker.log
Read ...vault-PoC-dotnet-hashicorp/terminals/938586.txt
Read statsig-cache.json
| $ sqlite3 /home/ubuntu/.cursor/ai-tracking/ai-code-tracking.db “.schema” 2>/dev/null | head -50 530ms |
Grepped, read 1 grep, 4 files
… 2 earlier items hidden
Used sdk
Used create-hook
Read tool output
$ head -c 500 /home/ubuntu/.cursor/statsig-cache.json && echo “” && ls -la /home/ubuntu/.cursor/ai-tracking/ && file /home/ubuntu/.cursor/ai-tracking/ai-code-tracking.db && sqlite3 /home/ubuntu/.cursor/chats/5ffc83748f14b6c02cd2340bde70b055/2da7b294-0888-4db6-bb49-8aff431c9089/store.db “.tables” 2>/dev/null exit 127 • 503ms … 4 output lines hidden · ctrl+o to expand -rw-r–r– 1 ubuntu ubuntu 3399680 Jul 19 02:46 ai-code-tracking.db /home/ubuntu/.cursor/ai-tracking/ai-code-tracking.db: SQLite 3.x database, last written using SQLite version 3044002, file counter 565, database pages 830, 1st free page 203, free pages 64, cookie 0x19, schema 4, UTF-8, version-valid-for 565
Globbed "**/*" in skills-cursor
Found 18 files
$ python3 -c “ import sqlite3 396ms … 10 input + 8 output lines hidden · ctrl+o to expand table: blobs table: meta
Read 13 files
… 10 earlier items hidden
Used review
Used update-cursor-settings
Read projects/home-ubuntu-tthvault/repo.json
This is ~/.cursor — Cursor’s local data directory on your machine. It holds CLI/IDE configuration, synced built-in skills, chat session storage, per-workspace agent state, and analytics. There are 188 files total; many follow repeating patterns (UUID-named sessions, SQLite databases, logs). Below is a full breakdown by area.
────────────────────────────────────────
High-level layout
~/.cursor/ ├── cli-config.json # CLI user settings & auth cache ├── agent-cli-state.json # One-time CLI UI flags ├── statsig-cache.json # Feature-flag cache (Statsig) ├── ai-tracking/ # AI code attribution tracking DB ├── chats/ # Chat UI state (per workspace) ├── projects/ # Agent runtime state (per opened folder) └── skills-cursor/ # Built-in Cursor Agent Skills (synced from server)
┌──────────────────────────────────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Root config │ │ chats/ │ projects/ │ │ │ │ │ │ │ │ │ │ │ │ ┌─────────────────┐ ┌───────────────────────────┐ ┌────────────────────┐ │ ├───────────┐ ┌─────────────────────┐ ┌──────────┐ │ ┌───────────┐ ┌────────────────────┐ ┌────────────┐ ┌─────────────────┐ ┌───────────────────┐ │ ┌───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ cli-config.json │ │ agent-cli-state.json │ │ statsig-cache.json │ │ │ meta.json │ │ prompt_history.json │ │ store.db │ │ │ repo.json │ │ .workspace-trusted │ │ worker.log │ │ terminals/.txt │ │ agent-tools/.txt │ │ │ chats │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────────┬────────┘ └───────────────────────────┘ └────────────────────┘ │ ├───────────┘ └─────────────────────┘ └──────────┘ │ └───────────┘ └────────────────────┘ └────────────┘ └─────────────────┘ └───────────────────┘ │ └───┬───┘ │ │ │ │ │ │ │ └──────────┼───────────────────────────────────────────────────────────────────┘ ├──────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────┐ ┌───────────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ projects │ │ agent-transcripts/*.jsonl │◄───────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────┘ │ │ │ │ │ │ └─────────────────┘ └───────────────────────────┘ │ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ctrl+o to show source
────────────────────────────────────────
Root-level files
cli-config.json
Main Cursor CLI configuration. Controls how the agent behaves on the command line.
┌──────────────────────────┬───────────────────────────────────────────────────────────────┐ │ Section │ Purpose │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ permissions.allow / deny │ Which shell commands the agent may run without extra approval │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ editor.vimMode │ Vim keybindings in the CLI │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ display.* │ UI toggles (line numbers, thinking blocks, status line, etc.) │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ model / selectedModel │ Default AI model (e.g. Composer 2.5 Fast) and parameters │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ approvalMode │ How strictly tool use is gated (unrestricted, etc.) │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ sandbox │ Sandbox mode for isolated command execution │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ authInfo │ Cached login identity (email, display name, user ID) │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ privacyCache │ Privacy/ghost mode settings │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ serverConfigCache │ Cached backend URLs (api2.cursor.sh, agent endpoints) │ ├──────────────────────────┼───────────────────────────────────────────────────────────────┤ │ attribution │ Whether commits/PRs are attributed to the agent │ └──────────────────────────┴───────────────────────────────────────────────────────────────┘
This is the file the update-cli-config skill edits.
agent-cli-state.json
Small CLI onboarding / migration flags, not general settings:
• hasShownAgentCommandTip — whether the agent-command tip was shown • hasClearedLegacyStatsigFields — migration flag for old config fields
statsig-cache.json
Large (~537 KB) cached feature flags and experiments from Statsig (https://statsig.com). Cursor uses this to decide which features are enabled (experiments, dynamic configs, etc.) without hitting the network every time. Contains JSON like dynamic_configs, can_record_session, experiment groups, etc. Safe to treat as opaque cache; Cursor refreshes it periodically.
────────────────────────────────────────
ai-tracking/
ai-code-tracking.db
SQLite database for AI code attribution / tracking — which code was AI-generated vs human-written.
Tables:
┌────────────────────────┬────────────────────────────────────────────┐ │ Table │ Likely purpose │ ├────────────────────────┼────────────────────────────────────────────┤ │ ai_code_hashes │ Hashes of AI-generated code chunks │ ├────────────────────────┼────────────────────────────────────────────┤ │ tracked_file_content │ Snapshots/hashes of tracked file content │ ├────────────────────────┼────────────────────────────────────────────┤ │ ai_deleted_files │ Files removed that were previously tracked │ ├────────────────────────┼────────────────────────────────────────────┤ │ scored_commits │ Commits scored for AI contribution │ ├────────────────────────┼────────────────────────────────────────────┤ │ conversation_summaries │ Summaries linked to coding sessions │ ├────────────────────────┼────────────────────────────────────────────┤ │ tracking_state │ Internal sync/cursor state for the tracker │ └────────────────────────┴────────────────────────────────────────────┘
Used for analytics, attribution, and related product features — not something you normally edit by hand.
────────────────────────────────────────
chats/ — chat session storage
Organized as:
chats/
The workspace hash (e.g. 5ffc83748f14b6c02cd2340bde70b055) identifies which folder you had open. The session UUID is one chat/conversation.
Workspace folders in your tree
┌──────────────────────────────────┬──────────────────────────────────────────────────────┐ │ Hash folder │ Associated workspace (inferred) │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ 5ffc83748f14b6c02cd2340bde70b055 │ /home/ubuntu/.cursor (current) │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ 7f7140f9ab86684b40aa95373a3bce0a │ /home/ubuntu/tthvault/PoC_dotnet_hashicorp │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ cdd2143e17dbaf8601c198b5900289d6 │ /home/ubuntu/tthvault/PoC_dotnet │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ 96d7b0b89e83553e20e2e4a101bfa5e2 │ /home/ubuntu/tthvault/PoC_go │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ e7a81946e3a063bdc2d9ffe2591cfacc │ /home/ubuntu/tthvault │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ 0f55e2131922b905fb663eebc9baa90d │ (PoC dotnet hashicorp — alternate workspace binding) │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ 8c74903ded871a6ec848c2b39eaca4e3 │ vault-cluster project │ ├──────────────────────────────────┼──────────────────────────────────────────────────────┤ │ dcf1cb88564cab74bbfd120b64688e93 │ partial/abandoned session (meta only) │ └──────────────────────────────────┴──────────────────────────────────────────────────────┘
Per-session files
meta.json — session metadata, e.g.:
{ “schemaVersion”: 1, “createdAtMs”: …, “title”: “Explain All Files”, “cwd”: “/home/ubuntu/.cursor”, “hasConversation”: true, “updatedAtMs”: … }
prompt_history.json — array of user prompt strings for that session (command history / rewind).
store.db — SQLite blob store for the chat UI (blobs, meta tables). Holds message content, attachments, and UI state in a structured way.
store.db-shm / store.db-wal — SQLite Write-Ahead Log sidecar files when a session DB is actively open. Normal; do not delete while Cursor is running.
────────────────────────────────────────
projects/ — agent runtime per workspace
Each subfolder name encodes the workspace path: slashes become hyphens, e.g. home-ubuntu-tthvault-PoC-dotnet-hashicorp → /home/ubuntu/tthvault/PoC_dotnet_hashicorp.
Your project folders
┌─────────────────────────────────────────────────────────┬────────────────────────────┐ │ Folder │ Workspace │ ├─────────────────────────────────────────────────────────┼────────────────────────────┤ │ home-ubuntu │ /home/ubuntu │ ├─────────────────────────────────────────────────────────┼────────────────────────────┤ │ home-ubuntu-cursor │ /home/ubuntu/.cursor │ ├─────────────────────────────────────────────────────────┼────────────────────────────┤ │ home-ubuntu-tthvault │ /home/ubuntu/tthvault │ ├─────────────────────────────────────────────────────────┼────────────────────────────┤ │ home-ubuntu-tthvault-PoC-dotnet │ PoC .NET project │ ├─────────────────────────────────────────────────────────┼────────────────────────────┤ │ home-ubuntu-tthvault-PoC-dotnet-hashicorp │ PoC .NET + HashiCorp Vault │ ├─────────────────────────────────────────────────────────┼────────────────────────────┤ │ home-ubuntu-tthvault-PoC-dotnet-hashicorp-vault-cluster │ Vault cluster variant │ ├─────────────────────────────────────────────────────────┼────────────────────────────┤ │ home-ubuntu-tthvault-PoC-go │ PoC Go project │ └─────────────────────────────────────────────────────────┴────────────────────────────┘
Common files in each project
repo.json — stable UUID for this workspace in Cursor’s indexing/sync system, e.g. {“id”: “4df72b6c-6704-4e37-aab7-e63346182015”}.
.workspace-trusted — records that you approved agent access to this folder:
{ “trustedAt”: “2026-07-19T02:46:38.943Z”, “workspacePath”: “/home/ubuntu/.cursor” }
worker.log — log from Cursor’s background indexing worker for that workspace: Merkle tree sync, file indexing, socket path (worker.sock), errors (e.g. npx not found). Useful for debugging indexing issues.
agent-transcripts/
{“role”:”user”,”message”:{“content”:[{“type”:”text”,”text”:”…”}]}} {“role”:”assistant”,”message”:{“content”:[{“type”:”text”,”text”:”…”},{“type”:”tool_use”,”name”:”Shell”,…}]}}
terminals/
pid: 87012 cwd: “/home/ubuntu/tthvault/PoC_dotnet_hashicorp” command: “docker compose run –rm test 2>&1” started_at: 2026-07-13T09:45:30.822Z running_for_ms: 911214 —