config.json for persistent runtime behavior, and the Settings panel for review UI preferences.
Where settings live
The default data directory is~/.plannotator. Set PLANNOTATOR_DATA_DIR to move Plannotator’s config, session records, history, plans, and related state together.
The persistent runtime config is:
Precedence
The narrowest setting wins:- A command flag, when the command supports one
- An environment variable
- A value in
config.json - The built-in default
--no-jina, PLANNOTATOR_JINA, jina in config.json, then the default of enabled.
The Settings panel uses a related but separate rule. Settings that Plannotator syncs to the server prefer config.json, then the browser cookie, then the built-in default. Changes in the panel update the cookie immediately and write the supported fields back to config.json.
Runtime config file
This example shows every top-level runtime key. You only need to include values you want to change.Supported diff values
conventionalLabels replaces the built-in comment labels. Set it to null to restore the defaults.
annotateHistory stores a copy of each annotated local file under the data directory so later sessions can show a version diff. Set it to false if you do not want that history written.
verifyAttestation is also a valid config key, but only the installer reads it. When enabled, installation requires an authenticated GitHub CLI and verifies build provenance after the checksum.
Browser UI settings
The Settings panel stores UI preferences in a browser cookie because Plannotator sessions use changing local ports. The cookie can be shared across those ports on the same host. The server-synced settings are your display name, diff options, conventional comments, and custom comment labels. Other interface choices, such as theme, layout, panel state, and file browser preferences, remain in the browser cookie. Clearing site data forlocalhost resets cookie-only settings. It does not delete config.json, saved plans, or annotation history.
Prompt customization
Theprompts object in config.json changes supported feedback messages returned to the calling agent after a decision. It does not replace the instructions used by launched AI review jobs. See Customize Feedback for supported paths, keys, placeholders, defaults, and precedence.
