Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Feature List

This page inventories the current CLI behavior. Desktop remains outside this CLI release scope.

Shared Library and Sync

Tome consolidates skills into one canonical library and distributes selected portable skills through Unix symlinks.

CapabilityCurrent behavior
DiscoveryReads native plugin caches, ordinary directories, and shared Git repositories
Canonical storageStores managed and local skills as real directory copies
ProvenanceTracks source ownership and content hashes in .tome-manifest.json and tome.lock
ClassificationStores shared user-managed tags on each manifest skill
DistributionRoutes skills to destinations by OR-matching manifest tags
ExceptionsA per-destination skill exclusion overrides a matching tag
Conflict handlingShared exclusions and source pins resolve pool membership

Native tool plugins remain tool-specific installation adapters. Tome tracks the desired plugin and skill state, reconciles through those adapters when local consent permits, and routes portable library copies to tools that consume SKILL.md packages.

Layered Configuration

Normal commands resolve four layers:

LayerPurpose
tome.tomlShared repository policy, Git sources, library path, exclusions, and source pins
machines/<profile>.tomlSelected profile’s machine-wide sources, destinations, and routes
Nearest .tome.tomlAdditive project-only destinations and routes, discovered upward from the working directory
~/.config/tome/settings.tomlActive profile and local Git, plugin-install, and backup consent

Invalid project configuration fails explicitly. Project configuration cannot define sources or replace profile destinations. Released commands do not read or write machine.toml, and the CLI has no --machine option.

Tag Routing

Sources determine library membership and provenance, not distribution. New skills enter the manifest with no tags. Use tome tag to classify them and tome route to select tags for a destination.

tome tag add rust-cli coding
tome tag add rust-cli portable
tome route tag add --to codex coding
tome route exclude add --to codex claude-only-skill

A configured route uses OR matching, so either coding or portable can select a skill when both tags appear in the route. Untagged skills stay in the library but are not linked into routed destinations. Destinations without a route retain unrestricted legacy distribution behavior.

Sync Pipeline

StageWhat it does
ReconcileCompares managed state with tome.lock and invokes native adapters when consent permits
DiscoverScans shared Git sources and selected-profile directory sources
ConsolidateCopies skills into the canonical library while preserving manifest tags
DistributeApplies destination routes, explicit exclusions, and existing origin safety checks
CleanupRemoves stale Tome-owned links, including links that become unrouted
LockfileWrites reproducible provenance state for the next reconciliation

Command Surface

Setup and inspection

CommandCurrent feature
tome initInteractive setup
tome profile create|list|selectManage committed profiles and local selection
tome syncResolve layers and run the full sync pipeline
tome statusShow the selected profile, effective directories, library health, and last sync
tome configShow effective configuration or its shared-policy path
tome listList discovered skills; supports JSON output
tome browseBrowse skills with fuzzy search and markdown preview
tome --versionPrint the version through Clap’s standard flag

Sources, tags, and routes

CommandCurrent feature
tome add <git-url>Add a repository-owned Git source; no --to or --role
tome add <path> [--role]Add a local directory to the selected profile
tome tag add|remove|listManage tags stored in the shared manifest
tome route tag add|removeManage destination tag selectors in the owning profile or project
tome route exclude add|removeManage explicit per-destination skill exclusions
tome pool exclude|restoreRemove a skill from shared discovery or restore it

Library lifecycle and recovery

CommandCurrent feature
tome remove dir <name>Remove a configured directory and preserve its skills as Unowned
tome remove skill <name>Delete an Unowned skill from library, manifest, distributions, and lockfile
tome reassign <skill> --to <dir>Re-anchor an owned or Unowned skill
tome fork <skill> --to <dir>Convert a managed skill into a local editable copy
tome doctorDiagnose and safely repair supported library and destination problems
tome lint [path]Validate SKILL.md frontmatter in text or JSON form
tome relocate <path>Move the library and repair downstream links
tome ejectRemove Tome-owned distribution symlinks without deleting the library
tome backup ...Create, list, diff, and restore Git-backed library snapshots
tome completions <shell>Install or print shell completions

The obsolete tome migrate-library, tome version, and tome remove pool commands are not part of the current CLI.

Safety and Operability

  • Checked atomic writes for repository policy, profiles, project config, local settings, the manifest, and the lockfile.
  • --dry-run for state-changing flows and --no-input for automation.
  • --no-install and --git-sync one-run consent overrides.
  • Deterministic SHA-256 hashing for idempotent consolidation.
  • Foreign-symlink protection before cleanup removes destination entries.
  • Structured JSON output for status, doctor, list, and lint.
  • tracing logging through --verbose, --quiet, and TOME_LOG.

Platform Boundary

Tome is Unix-only because distribution uses symlinks. The CLI remains pre-1.0 and does not promise backward compatibility. Desktop code exists in the workspace but is paused and outside this CLI release.