Configuration
File format
Section titled “File format”Settings live in JSONC: JSON with comments and trailing commas. A published JSON Schema gives editor autocomplete and inline validation in VS Code, Cursor, Zed, JetBrains, and anything else that respects $schema.
Locations
Section titled “Locations”Two files, merged project-over-user (project values win field by field):
~/.config/harnery/config.jsonc: user-global base for every project on the machine (honorsXDG_CONFIG_HOME, falling back to~/.config)<project-root>/.harnery/config.jsonc: the project file, authoritative
CLI flags and HARNERY_* env vars override both per invocation (each field’s env override is noted in the schema reference). A project that sets only web.port keeps a user-global web.bind; the merge is field-by-field, not whole-object.
Schema
Section titled “Schema”Reference the published JSON Schema at the top of your config:
{ "$schema": "https://harnery.com/schemas/config.schema.json",
// ... your settings here}VS Code (and most modern editors) read the $schema URL and provide autocomplete + validation as you type.
Example
Section titled “Example”{ "$schema": "https://harnery.com/schemas/config.schema.json",
// Project identity surfaced to peers + in log lines. "project_name": "my-project",
// Coord layer "coord": { "freshness_seconds": 600 // how stale a peer heartbeat can get before sweep },
// Repository-local working files "artifacts": { "default_retention_days": 3 },
// Web UI "web": { "port": 9000, "bind": "127.0.0.1" },
// Backup (restic) "backup": { "repo": "rclone:gdrive:harnery-backup/my-project", "keep_daily": 7, "keep_weekly": 4, "keep_monthly": 6 }}See reference / config schema for the full field listing.