Make it yours
Sync project info writes a working .nocturnal/project.json. These extras are optional — they make the rail, dashboard, and agents feel like the project belongs in Nocturnal.
Rail mark
A project shows a folder mark by default. There is no in-app icon picker.
To use the project's own mark, put a favicon in the repo (favicon.svg, public/favicon.ico, static/favicon.png, and the usual places). Sync project info and the next scan pick it up and write "favicon" into .nocturnal/project.json.
To point at a specific file, edit the project file:
{
"favicon": "public/favicon.svg"
}
The path is repo-relative. The dashboard serves it at GET /api/projects/:id/favicon. Change or remove that field to change the rail mark — same as any other project config.
Display name
Right-click the rail row → Rename, or set displayName in .nocturnal/project.json. Empty restores the scanned name.
Scripts, processes, and groups
The Scripts tab runs one-shot commands (deploy, seed, migrate). The Processes tab runs long-lived servers. If you add a useful command, put it in scripts or processes (and a processGroups entry when two or more start together) so it shows up as a button instead of living only in package.json. Same for ports in services — change the repo config and .nocturnal/project.json together; the engine watches that folder.
Links
Production, docs, design, and admin URLs go in links. They appear on the Dashboard and About. Localhost app URLs stay in-app; everything else opens in the browser.
Agent notes
intelligence.agentNotes and the Nocturnal block in AGENTS.md are how later agents learn this repo — process ids, log paths, and conventions. Keep them accurate when you change how the project runs.
Plans and versions
.nocturnal/plans.json is the project roadmap — any agent can read a ready plan and execute it. .nocturnal/versions.json is the client-readable release log. Both live in the repo so they travel with the project, not the machine.