Credit: This article is inspired by and paraphrases research and examples shared by Markus Eisele. The original work explores how existing Codex and Claude Code plugin ecosystems can be adapted to IBM Bob's project-based architecture.
As developer-focused AI tooling continues to evolve, many teams are starting to evaluate how existing AI workflows can be reused across platforms. If you've invested in Codex plugins or Claude Code extensions, the good news is that much of the logic can be migrated to IBM Bob.
The challenge is that IBM Bob follows a different philosophy.
While Codex and Claude Code package capabilities inside plugin manifests, IBM Bob organizes functionality through project-level configuration inside the .bob/ directory. The migration is less about copying files and more about mapping capabilities to Bob's native concepts.
The Core Difference
Both Codex and Claude Code use plugin containers.
Examples include:
.codex-plugin/plugin.json
.claude-plugin/plugin.json
IBM Bob doesn't currently provide a direct equivalent.
Instead, capabilities are distributed across various project-level components:
.bob/
├── skills/
├── commands/
├── agents/
├── hooks/
├── mcp.json
└── settings.json
Rather than migrating a plugin as a single unit, developers migrate each capability individually.
Moving a Codex Plugin to IBM Bob
Plugin Manifest
A Codex package normally starts with:
.codex-plugin/plugin.json
IBM Bob has no direct manifest replacement.
Instead:
- Remove the packaging layer
- Store configuration inside
.bob/ - Distribute project files directly through repositories or templates
Skills
Codex skills can generally be copied into:
.bob/skills/<name>/SKILL.md
When migrating:
✅ Add name
✅ Add description
✅ Review platform-specific references
✅ Update tool names and paths
Bob only loads valid skills when running in Advanced Mode, so testing activation is important.
Lifecycle Hooks
Codex hook definitions often live inside:
hooks/hooks.json
In IBM Bob, lifecycle events move into:
.bob/settings.json
The actual scripts frequently remain reusable.
The main change is configuration structure and path resolution.
For example:
${PLUGIN_ROOT}
becomes something like:
.bob/hooks/guard_write.py
MCP Configuration
Codex plugins may define MCP servers through:
.mcp.json
or plugin manifests.
In IBM Bob, MCP configuration is centralized inside:
.bob/mcp.json
Migration usually requires reviewing:
- Transport settings
- OAuth authentication
- Environment variables
- Working directories
- Tool approval settings
Never commit credentials into source control during the migration process.
AGENTS.md
One file that transfers cleanly is:
AGENTS.md
Both Codex and IBM Bob use it for long-lived project guidance.
Repository conventions, coding policies, and workflow descriptions can often be reused with minimal changes.
Important Hook Differences
One of the biggest migration challenges involves lifecycle hooks.
Codex currently supports richer hook capabilities than Bob 2.x.
Payload Differences
Codex typically sends:
{
"hook_event_name": "...",
"tool_name": "...",
"tool_input": {}
}
IBM Bob documentation refers to:
{
"event": "...",
"tool": "...",
"input": {}
}
Creating a small adapter layer helps normalize both formats.
Tool Name Differences
Codex commonly works with:
apply_patch
Edit
Write
Bob uses:
write_file
apply_diff
search_and_replace
insert_content
Validation rules often need updated matchers.
Execution Model
Codex provides richer capabilities for:
- Tool input rewriting
- Additional context injection
- Dynamic responses
IBM Bob focuses on deterministic control.
A typical Bob pattern is:
stderr message
+
exit code 2
to block an operation.
This simplicity makes many validation policies portable across platforms.
Moving Claude Code Plugins to IBM Bob
Claude Code follows a similar migration path.
A typical Claude plugin may include:
.claude-plugin/plugin.json
skills/
commands/
agents/
hooks/
.mcp.json
These components can be mapped into Bob individually.
Commands
Claude commands translate naturally to:
.bob/commands/
Both platforms support:
- Markdown commands
- Descriptions
- Arguments
- Positional parameters
In many cases the migration is straightforward.
Agents → Personas
Claude agents generally become:
.bob/agents/
within Bob.
Bob personas allow developers to define:
- Specialized helper roles
- Tool restrictions
- Focused responsibilities
A key difference is that personas can reduce permissions but cannot elevate them.
MCP Servers
Claude MCP integrations typically move directly into:
.bob/mcp.json
although authentication and configuration should be validated after migration.
Unsupported Components
Some Claude plugin features do not currently have direct Bob equivalents.
Examples include:
.lsp.json
Monitors
Plugin executables
Certain plugin settings
These often require redesigning the workflow rather than performing a direct migration.
A Practical Migration Strategy
Instead of treating migration as a file-copy exercise, think of it as capability mapping:
| Existing Capability | IBM Bob Destination |
|---|---|
| Plugin Manifest |
.bob/ project config |
| Skills | .bob/skills/ |
| Commands | .bob/commands/ |
| Hooks | .bob/settings.json |
| MCP Servers | .bob/mcp.json |
| Agents | .bob/agents/ |
| Repository Rules | AGENTS.md |
The most portable components tend to be:
- Skills
- Commands
- AGENTS.md guidance
- PreToolUse validation hooks
These usually require only minor adjustments.
Final Thoughts
Migrating from Codex or Claude Code to IBM Bob isn't about recreating a plugin ecosystem.
It's about adopting a project-centric architecture where:
- Skills define workflows
- Commands standardize execution
- Personas handle specialized roles
- MCP extends capabilities
- Lifecycle hooks enforce deterministic guardrails
Once you embrace these concepts, many existing AI workflows can be adapted surprisingly well.
The biggest lesson is simple:
Migrate behavior, not packaging.
Focus on the capability you're trying to preserve, then map it to the appropriate IBM Bob feature.
That approach leads to cleaner, more maintainable migrations and a better long-term developer experience.
Original concepts, examples, and migration research by Markus Eisele. This article is a summarized and paraphrased adaptation for the IBM Bob developer community.
Top comments (0)