Your data
Where PDT keeps its data and logs, how it backs up its database, and how to move or remove it.
Everything PDT knows stays on your machine: tickets, conversations, workflows, settings. Nothing goes to a PDT server (there isn’t one). Your code stays in your repositories; the agents you run send what they read to their own providers, as they would outside PDT.
PDT trusts everything that runs as you on this machine: your agents, terminals and runs, and any other program you run, can do anything you can in PDT. Where PDT asks you to approve something (a run’s commands, a ticket proposal), that stops an agent doing it by mistake, not one set on doing it. Other people’s web pages can’t reach PDT, and from another device only you get in (see Remote access).
Where it is
PDT keeps everything in one data folder:
| System | Data folder |
|---|---|
| macOS | ~/Library/Application Support/pdt |
| Windows | %LOCALAPPDATA%\pdt |
| Linux | ~/.local/share/pdt (or $XDG_DATA_HOME/pdt) |
The main things in it:
pdt.db: the database, with your projects, tickets, sessions, workflows and settings (andpdt.db-walandpdt.db-shmbeside it while PDT runs);backups/: copies of the database (below);documents/: your local documents (.mddocs and.xlsxsheets), unless you picked another folder for them;logs/: PDT’s logs (below);sessions/,pm/andruns/: what PDT keeps for agent sessions, the PM and runs (a run’s own data folder, its log);network.json: the port and allowed hosts from Settings › This host › Network;update/: downloads and the database copy taken before an update;- on Linux without a system keyring,
secrets.json(see Secrets).
Your secrets, the GitHub login and the update token are in your system’s keychain, not in the folder. Your repositories and their worktrees stay where they are, in your projects folder.
Disk space
Each ticket works in its own worktree, and each worktree builds on its own: a Rust target folder or node_modules
can take gigabytes per worktree. Worktrees stay after a ticket is done, so PDT cleans up after them.
- Settings › This host › Storage shows how much is free on each disk PDT uses and what each worktree takes, build output apart. Sizes are measured in the background every half hour; Measure again does it now.
- Clean removes a worktree’s build output (the project’s build output folders that git ignores), never your code or uncommitted work. Its next build starts from scratch.
- Clean all finished cleans every Done or Won’t do ticket’s worktree at once.
- On its own, PDT cleans a finished ticket’s worktree two days after it is done. Change that per project in its Worktrees settings with Clean build output after, and set Remove worktree after to remove the worktree itself too (its branch stays; a worktree with uncommitted changes is kept). Worktrees a ticket still works in, and ones that belong to no ticket, are never touched.
- On Won’t do says what becomes of a worktree when its ticket goes to Won’t do or its attempt is abandoned: Clean up at once (the default: the worktree, its branch and the ticket’s workspace go), Keep for some days (then it is removed) or Keep. Work not committed or not pushed is always kept.
- When a disk has less than 20 GB free, the Inbox says so. Below 5 GB it is almost full: PDT pauses pickup (auto-start starts no new tickets; agents already running carry on) and cleans every finished ticket’s build output at once. The Board shows Pickup paused on each ticket auto-start would take, with why. Once the disk is no longer almost full (within the hour), or has enough space again, pickup resumes; Resume pickup in Settings › This host › Storage resumes it now.
- The built-in Clean up storage workflow does the cleaning and the pausing. Change its thresholds (0 turns one off) and what it does when a disk is almost full in Settings › This host › Storage › Cleanup, or customize it as a workflow.
- However the workflow is set, PDT stops saving changes when the disk is completely full, and saves again once there is space.
Logs
The logs are in the logs folder of the data folder:
pdtd.<date>.log: PDT’s own log, one per day, the last 14 kept. Start here.pdt-host.log: the supervisor’s log: starts, stops, updates and rollbacks.pdtd-launch.log: what PDT printed as it started, before its own log opened. Look here when PDT won’t start.pdt-host.launchd.log(macOS): the supervisor’s output as macOS started it.
On Linux the supervisor’s output also goes to journalctl --user -u pdt-host.
Secret values never appear in the logs (PDT writes [secret:NAME] instead). Report a bug… can attach the log’s
last lines, cleaned of tokens and your machine’s names.
Backups
PDT copies its database before every update, and puts it back if the update rolls back. It also copies it into
backups/ before it changes the database’s layout, keeping the last three copies.
For a backup of your own while PDT runs, use SQLite’s backup command (a plain copy of a database in use can be inconsistent):
cd ~/Library/Application\ Support/pdtsqlite3 pdt.db ".backup pdt-backup.db"Or let your usual backup tool (Time Machine and the like) include the data folder. That includes your local documents
in documents/; if you keep them in another folder (Settings › This host › Documents, or a project’s), back that
folder up too. Their comments and charts are in the database.
Old history is pruned as PDT goes: finished workflow runs, ended Inbox items, notifications and the event log after 30 days. Tickets, comments and conversations’ messages stay.
Move to another machine
PDT’s data folder works on another machine with the same system, provided your repositories are at the same paths there. Secrets and logins don’t move with it: they’re in the old machine’s keychain.
- On the old machine, uninstall PDT. That stops it and leaves the data folder alone.
- Copy the data folder to the same place on the new machine.
- Clone your repositories to the same paths as on the old machine.
- Install PDT on the new machine. It finds the data folder and opens with your projects and tickets.
- Sign in to GitHub again, save the update token if you had one, and give your secrets their values again: Settings › Secrets still lists them; Edit each and paste its value.
Moving between systems (from a Mac to Windows, say) isn’t supported: the paths in the data differ.
Remove everything
Uninstall PDT first, then delete the data folder. To remove the secrets too,
delete them in Settings › Secrets before you uninstall, or remove the entries named for Personal Dev Team in your
keychain (Keychain Access on macOS, Credential Manager on Windows), under dev.personaldevteam.