Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Osori v1.6.1 — Local project registry & context loader with Telegram slash commands. Registry versioning + auto-migration + root filters + root management +...
Osori v1.6.1 — Local project registry & context loader with Telegram slash commands. Registry versioning + auto-migration + root filters + root management +...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Local project registry & context loader for AI agents.
macOS: mdfind (Spotlight, built-in), python3, git, gh CLI Linux: mdfind unavailable → uses find as fallback automatically. python3, git, gh CLI required. Entire integration (optional): entire CLI installed (for /entire-* commands)
python3 — Required. Used for JSON processing. git — Project detection and status checks. entire — Optional. Required only for /entire-status, /entire-enable, /entire-rewind-list.
Osori now supports Telegram slash commands for quick project management: /list [root] — Show registered projects (optional root filter) /status [root] — Check status of projects (optional root filter) /find <name> [root|--root <root>] — Find a project by name (optional root scope) /switch <name> [root|--root <root>] [--index <n>] — Switch to project and load context (multi-match selection) /fingerprints [name] [--root <root>] — Show repo remote + last commit + open PR/issue counts /doctor [--fix] [--dry-run] [--yes] [--json] — Registry health check (preview-first, risk-gated) /list-roots — List roots, labels, paths, and project counts /root-add <key> [label] — Add root (or update label) /root-path-add <key> <path> — Add discovery path to root /root-path-remove <key> <path> — Remove discovery path from root /root-set-label <key> <label> — Update root label /root-remove <key> [--reassign <target>] [--force] — Safely remove root /alias-add <alias> <project> — Add alias for project /alias-remove <alias> — Remove alias /favorites — Show favorite projects /favorite-add <project> — Mark project as favorite /favorite-remove <project> — Unmark favorite /entire-status <project> [root|--root <root>] — Show Entire status in a project /entire-enable <project> [root|--root <root>] [--agent <name>] [--strategy <name>] — Enable Entire in a project /entire-rewind-list <project> [root|--root <root>] — List rewind points in a project /add <path> — Add project to registry /remove <name> — Remove project from registry /scan <path> [root] — Scan directory for git projects, optional root key /help — Show command help
Add to your OpenClaw agent's TOOLS.md or Telegram bot config: # In Telegram bot commands (BotFather) list - Show all projects (or by root) status - Check project statuses (or by root) find - Find project by name switch - Switch to project fingerprints - Show repo/commit/PR/issue fingerprint doctor - Health check (preview-first, risk-gated fix) list-roots - Show roots and discovery paths root-add - Add root root-path-add - Add path to root root-path-remove - Remove path from root root-set-label - Rename root label root-remove - Safely remove root (with reassign/force options) alias-add - Add alias for a project alias-remove - Remove alias favorites - Show favorite projects favorite-add - Mark favorite project favorite-remove - Unmark favorite project entire-status - Show Entire status for a project entire-enable - Enable Entire for a project entire-rewind-list - List rewind points for a project add - Add project to registry remove - Remove project scan - Scan directory (optional root) help - Show help
/list work /status personal /find agent-avengers work /switch Tesella --root personal /switch Tesella --root personal --index 1 /fingerprints Tesella --root personal /doctor --fix /list-roots /root-add work Work /root-path-add work /path/to/workspace /root-remove work --reassign default /alias-add rh RunnersHeart /favorite-add RunnersHeart /favorites /entire-status osori /entire-enable osori --agent claude-code --strategy manual-commit /add /Volumes/disk/MyProject /scan /path/to/workspace work
${OSORI_REGISTRY:-$HOME/.openclaw/osori.json} Override with the OSORI_REGISTRY environment variable.
Current schema: osori.registry Current version: 2 On every load, Osori auto-migrates older registry formats: legacy array ([]) → versioned object object without schema/version → normalized versioned object Normalized registry fields: top-level roots[] top-level aliases{} (alias → project name) each projects[] item includes favorite: bool Migration safety: creates backup: osori.json.bak-<timestamp> corrupted JSON is preserved as: osori.json.broken-<timestamp> write path uses atomic replace + rollback fallback
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 priority: roots[].paths from registry (if root is specified, that root first) paths from OSORI_SEARCH_PATHS Command form: 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.
Show all registered projects. Optional root filter supported in Telegram command: /list [root] (Example: /list work)
Supports optional root scope and explicit candidate selection: /switch <name> [root|--root <root>] [--index <n>] Flow: Search registry (fuzzy match, root-scoped if provided) If multiple matches: show candidate list (name/root/path/last commit/dirty/score) --index <n> to pick explicitly no index => auto-pick highest score If not found → run "Finding Projects" flow above and suggest add path Load context: git status --short git branch --show-current git log --oneline -5 gh issue list -R <repo> --limit 5 (when repo is set) Present summary Auto score policy: +50 root exact (if root scope provided) +30 name exact +20 name prefix +10 latest commit recency -10 missing path -5 repo missing tie-break: latest commit, then name
Show a one-shot project fingerprint view: repo remote URL last commit hash/date open PR count open issue count bash {baseDir}/scripts/project-fingerprints.sh [project-name] bash {baseDir}/scripts/project-fingerprints.sh --root <root-key> [project-name] GitHub open-count cache (PR/Issue): default cache file: $HOME/.openclaw/osori-cache.json default TTL: 600 seconds env overrides: OSORI_CACHE_FILE OSORI_CACHE_TTL
bash {baseDir}/scripts/add-project.sh <path> [--tag <tag>] [--name <name>] Auto-detects: git remote, language, description.
bash {baseDir}/scripts/scan-projects.sh <root-dir> [--depth 3] OSORI_ROOT_KEY=work bash {baseDir}/scripts/scan-projects.sh <root-dir> [--depth 3] Bulk-scan a directory for git repos and add them to the registry. Telegram command supports optional root key too: /scan <path> [root]
Delete an entry from osori.json by name.
Run git status + gh issue list for one or all projects. Telegram root filter: /status [root]
Registry health check with preview-first pipeline and risk-gated fixes. Default (no flags): analyze + preview plan — no changes applied. /doctor # preview only (default) /doctor --fix # preview + apply (high-risk blocked) /doctor --fix --yes # preview + apply all (including high-risk) /doctor --dry-run # explicit preview only (never applies) /doctor --json # machine-readable JSON output Risk levels: 🟢 low — schema normalization, migration, missing fields 🟡 medium — duplicate removal, root reference repair 🔴 high — registry re-initialization from corrupted state Shell equivalent: bash {baseDir}/scripts/doctor.sh [--fix] [--dry-run] [--yes] [--json] See also: Doctor Safe Fix Guide
/list-roots /root-add <key> [label] /root-path-add <key> <path> /root-path-remove <key> <path> /root-set-label <key> <label> /root-remove <key> [--reassign <target>] [--force] Shell equivalents: bash {baseDir}/scripts/root-manager.sh list bash {baseDir}/scripts/root-manager.sh add <key> [label] bash {baseDir}/scripts/root-manager.sh path-add <key> <path> bash {baseDir}/scripts/root-manager.sh path-remove <key> <path> bash {baseDir}/scripts/root-manager.sh set-label <key> <label> bash {baseDir}/scripts/root-manager.sh remove <key> [--reassign <target>] [--force] Safety rules for remove: default root cannot be removed if projects exist in root: --reassign <target> to move projects then remove or --force to move projects to default and remove
/alias-add <alias> <project> /alias-remove <alias> /favorites /favorite-add <project> /favorite-remove <project> Shell equivalents: bash {baseDir}/scripts/alias-favorite-manager.sh alias-add <alias> <project> bash {baseDir}/scripts/alias-favorite-manager.sh alias-remove <alias> bash {baseDir}/scripts/alias-favorite-manager.sh aliases bash {baseDir}/scripts/alias-favorite-manager.sh favorite-add <project> bash {baseDir}/scripts/alias-favorite-manager.sh favorite-remove <project> bash {baseDir}/scripts/alias-favorite-manager.sh favorites Aliases are case-insensitive and are resolved by /find, /switch, and project-fingerprints.sh name queries.
Run Entire CLI commands in a registered project context: /entire-status <project> [root|--root <root>] /entire-enable <project> [root|--root <root>] [--agent <name>] [--strategy <name>] /entire-rewind-list <project> [root|--root <root>] Shell equivalent: bash {baseDir}/scripts/entire-manager.sh status <project> [root|--root <root>] bash {baseDir}/scripts/entire-manager.sh enable <project> [root|--root <root>] [entire enable flags...] bash {baseDir}/scripts/entire-manager.sh rewind-list <project> [root|--root <root>] Defaults: entire enable defaults to --agent claude-code --strategy manual-commit when not provided. /entire-rewind-list uses non-destructive JSON listing (entire rewind --list).
{ "schema": "osori.registry", "version": 2, "updatedAt": "2026-02-16T00:00:00Z", "roots": [ { "key": "default", "label": "Default", "paths": [] } ], "aliases": { "rh": "RunnersHeart" }, "projects": [ { "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", "root": "default", "favorite": false } ] }
"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
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.