Projects
Projects group KB entries and session context. Recalletta detects your current project automatically via .recalletta.json pin files or git remote URLs.
List Projects
$ recalletta project list
Projects:
Default (default)
Perfect Manager (perfect-manager)
Recalletta (recalletta)
Zombie Game (zombiegame)
Create a Project
$ recalletta project create <NAME>
Creates a new KB project. The name becomes the slug (lowercase, hyphenated).
Rename a Project
$ recalletta project rename <PROJECT> <NEW_NAME>
Changes the project's slug and/or display name.
Delete a Project
$ recalletta project delete <PROJECT> [-y]
Deletes a project and all its contents. Pass -y to skip confirmation.
Pin a Directory to a Project
$ recalletta pin <SLUG|ID>
Writes a .recalletta.json file in your current directory that links it to a KB project. This tells Recalletta which project's KB entries to inject during SessionStart.
| Flag | Purpose |
|---|---|
--local |
Also adds .recalletta.json to .gitignore |
Examples:
$ recalletta pin recalletta # Pin by slug
$ recalletta pin 70d90af5 # Pin by ID prefix
$ recalletta pin recalletta --local # Pin and gitignore the pin file
The pin file looks like:
{
"project_id": "70d90af5-...",
"slug": "recalletta",
"name": "Recalletta"
}
How Project Detection Works
When a hook fires, Recalletta checks for a project in this order:
- Explicit pin — a
.recalletta.jsonfile in the current directory or any parent directory. Overrides everything. - Git remote match — the repo's git remote URL matched against registered projects. Exact match required.
- Directory prefix match — is the current working directory a subdirectory of a registered project path? Longest match wins.
- Single project fallback — if there is exactly one project, it is used automatically.
- No match — no KB injected, only session search results. Sessions are still saved.
See also Concepts: Project Detection.