osori
Osori is a local project registry and context loader that finds, lists, adds, and reports status for local git projects. It runs shell commands (e.g., bash skills/osori/scripts/add-project.sh), sets env vars like OSORI_REGISTRY, and may invoke gh issue list which contacts github.com.
Osori (오소리)
Local project registry & context loader for AI agents.
Prerequisites
- macOS:
mdfind(Spotlight, built-in),python3,git,ghCLI - Linux:
mdfindunavailable → usesfindas fallback automatically.python3,git,ghCLI required.
Dependencies
- python3 — Required. Used for JSON processing.
- git — Project detection and status checks.
Registry
${OSORI_REGISTRY:-$HOME/.openclaw/osori.json}
Override with the OSORI_REGISTRY environment variable.
Finding Projects (when path is unknown)
When the project path is unknown, search in order:
- Registry lookup — Fuzzy match name in
osori.json - mdfind (macOS only) —
mdfind "kMDItemFSName == '<name>'" | head -5 - find fallback — Search paths defined in
OSORI_SEARCH_PATHSenv var. If unset, ask the user for search paths.find <search_paths> -maxdepth 4 -type d -name '<name>' 2>/dev/null - Ask the user — If all methods fail, ask for the project path directly.
- Offer to register the found project in the registry.
Commands
List
Show all registered projects. Supports --tag, --lang filters.
Read osori.json and display as a table.
Switch
- Search registry (fuzzy match)
- If not found → run "Finding Projects" flow above
- Load context:
git status --shortgit branch --show-currentgit log --oneline -5gh issue list -R <repo> --limit 5(when repo is set)
- Present summary
Add
bash skills/osori/scripts/add-project.sh <path> [--tag <tag>] [--name <name>]
Auto-detects: git remote, language, description.
Scan
bash skills/osori/scripts/scan-projects.sh <root-dir> [--depth 3]
Bulk-scan a directory for git repos and add them to the registry.
Remove
Delete an entry from osori.json by name.
Status
Run git status + gh issue list for one or all projects.
Schema
{
"name": "string",
"path": "/absolute/path",
"repo": "owner/repo",
"lang": "swift|typescript|python|rust|go|ruby|unknown",
"tags": ["personal", "ios"],
"description": "Short description",
"addedAt": "YYYY-MM-DD"
}
Auto-trigger Rules
- "work on X" / "X 프로젝트 작업하자" → switch X
- "find project X" / "X 찾아줘" / "X 경로" → registry search or discover
- "list projects" / "프로젝트 목록" → list
- "add project" / "프로젝트 추가" → add
- "project status" / "프로젝트 상태" → status all