Skip to content

claude-bridge

Makes tallow discover and use resources from .claude/ directories, providing compatibility with Claude Code’s file layout conventions. Bridges skills, agents, and commands.

The extension enables cross-compatibility with Claude Code by scanning both .tallow/ and .claude/ directories:

ResourceBridged byPaths
Skillsclaude-bridge~/.claude/skills/, .claude/skills/
Agentssubagent-tool, agent-commands-tool, context-fork~/.claude/agents/, .claude/agents/
Commandscommand-prompt~/.claude/commands/, .claude/commands/
Hookshooks extension (not claude-bridge)~/.claude/settings.json, .claude/settings.json

This extension hooks resources_discover to inject .claude/skills/ paths into the pi framework’s skill loader. Discovered skills:

  • Appear in the system prompt’s skill descriptions
  • Are callable via /skill:name commands
  • Work identically to .tallow/skills/ skills

Paths checked:

  1. ~/.claude/skills/ — user-level
  2. .claude/skills/ — project-level (relative to cwd)

The pi framework merges these with .tallow/skills/ paths from built-in discovery.

Agents and commands use inline bridging — each extension that loads these resources scans both .tallow/ and .claude/ directories directly:

This is different from skills because agents and commands are extension-specific, not framework-level resources.

When a resource exists in both .tallow/ and .claude/, .tallow/ wins:

.tallow/skills/researcher/ ← loaded (priority)
.claude/skills/researcher/ ← skipped (collision)

This applies at each scope level:

  • User level: ~/.tallow/skills/ > ~/.claude/skills/
  • Project level: .tallow/skills/ > .claude/skills/

The priority is implemented via load order.claude/ paths are loaded first, then .tallow/ paths overwrite any duplicate names in the map.

Skills use the resources_discover hook to integrate with the pi framework’s built-in skill loader. This needs to run before skills are processed during session initialization.

Agents and commands are extension-owned resources, so each extension handles .claude/ scanning directly in its own discovery logic.

~/
├── .claude/
│ ├── skills/
│ │ └── web-search/
│ ├── agents/
│ │ └── researcher.md
│ └── commands/
│ └── analyze.md
└── .tallow/
├── skills/
│ └── code-review/
├── agents/
│ └── tester.md
└── commands/
└── refactor.md
project/
├── .claude/
│ ├── skills/
│ │ └── project-utils/
│ ├── agents/
│ │ └── deployer.md
│ └── commands/
│ └── build.md
└── .tallow/
├── skills/
│ └── test-runner/
├── agents/
│ └── reviewer.md
└── commands/
└── deploy.md

All resources from both .claude/ and .tallow/ directories are available. If both have a resource with the same name, .tallow/ version is used.

claude-bridge enhances skill-commands by providing .claude/skills/ paths via the resources_discover hook. skill-commands processes these paths the same way it handles .tallow/skills/ paths.

subagent-tool handles .claude/agents/ bridging directly in its agent discovery logic, not via this extension.

agent-commands-tool handles .claude/agents/ bridging directly, same as subagent-tool.

context-fork scans .claude/agents/ alongside .tallow/agents/ when resolving agent configurations for fork commands.

command-prompt scans .claude/commands/ alongside .tallow/commands/ when building the command index.