Configuration
Per-vault settings live in <vault>/config.yml. The file is created with sensible defaults by parc init. Every field is optional.
# Default config
# user: alice # used in created_by field; defaults to system user
# editor: vim # defaults to $EDITOR
default_tags: [] # auto-applied to new fragments
date_format: relative # relative | iso | short
id_display_length: 8 # ULID chars shown in listings
color: auto # auto | always | never
aliases:
n: note
t: todo
d: decision
r: risk
i: idea
server:
transport: stdio # stdio | socket
# socket_path: null # defaults to <vault>/server.sock
plugins: # per-plugin configuration, passed at init
# my-plugin:
# setting: value
# Field reference
# user
String. Used in the created_by field on new fragments. If unset, parc falls back to $USER (or $USERNAME on Windows). Set this when you want fragments to attribute to a name that differs from your system login — useful in shared vaults.
# editor
String. Path to the editor parc invokes for parc new (without an inline title) and parc edit. If unset, parc reads $EDITOR, then $VISUAL, then falls back to nano on Unix and notepad on Windows.
# default_tags
List of strings. Tags automatically added to every new fragment created in this vault. Useful for tagging an entire local vault by project: default_tags: [api] will add #api to every fragment automatically.
# date_format
How parc renders dates in human output:
| Value | Example |
|---|---|
relative (default) |
due in 3d, created 2 weeks ago |
iso |
2026-03-01T10:30:00Z |
short |
2026-03-01 |
Machine output (--json) always uses ISO 8601 regardless of this setting.
# id_display_length
Integer. How many characters of the ULID to show in listings. Default 8. Smaller is more readable, larger reduces ambiguity in vaults with many fragments. Internally parc always works with full IDs.
# color
auto (default) detects whether stdout is a TTY and respects NO_COLOR and --no-color. always forces colour even when piped. never disables colour entirely.
# aliases
A map from short name → type. The defaults give you n / t / d / r / i for the five built-ins. Add your own:
aliases:
m: meeting
b: bookmark
q: question
After this, parc m "1:1 with carla" is equivalent to parc new meeting "1:1 with carla".
# server
JSON-RPC server defaults. See JSON-RPC server.
server:
transport: socket
socket_path: /tmp/parc.sock
# plugins
Per-plugin configuration, keyed by plugin name. parc passes the matching subtree to each plugin's init callback at load time. The shape is plugin-specific — see each plugin's manifest.
# Environment variables
These take precedence over config.yml for the duration of a single command.
| Variable | Effect |
|---|---|
PARC_VAULT |
Use this vault path, skipping discovery |
EDITOR / VISUAL |
Editor for parc new / parc edit |
NO_COLOR |
Disable colour, equivalent to --no-color |
PARC_LOG |
Set log filter, e.g. PARC_LOG=debug |
# Schema overrides
You can also override the built-in schemas by dropping a file with the same name in <vault>/schemas/. parc resolves schemas with vault-local overrides taking precedence over built-ins. Use this carefully — fragments created with one schema and read against another can fail validation.