eHub logoeHub
~/.agentic · projected across every tool

Own your AI building blocks.
Skills, agents & rules, one hub.

eHub scans a single shared root and projects your agentic capabilities across Codex, Claude Code, Cursor, OpenClaw, and the OpenStandard ~/.agents root — plan-then-apply, never overwriting your real files.

One shared root, projected to every tool

CodexClaude CodeCursorOpenClawOpenStandard ~/.agents

The problem

Agentic capabilities sprawl across every tool

Power users collect skills, agents, and rules everywhere. Keeping them consistent and safe across tools is a manual, error-prone chore.

Drift between tools

A skill that works in Cursor must be copied or symlinked into Claude Code, Codex, and OpenClaw to take effect. Each tool has its own scan paths and layout rules. Hand-syncing is slow and breaks silently.

No safe batch control

Today it is bash scripts, ad-hoc symlinks, and per-tool dotfile edits. No way to see what is enabled, replace a broken link, or refuse a destructive overwrite without writing custom code each time.

No scenario switching

Coding, research, writing, per-project work — each wants a different capability set. Switching means re-toggling dozens of items or maintaining parallel directory trees by hand.

Capabilities

Five building blocks, one hub

Manage every kind of agentic resource from a single window, then project it cleanly to whichever tool you use.

Skills management

Manage skills once and share them across Codex, Claude, Cursor, and every OpenStandard-supported tool. eHub respects each loader's layout so a single skill shows up everywhere.

  • One source of truth for every skill, projected per tool.
  • Flat layout for Claude's non-recursive loader, copies where needed.
  • Enable, disable, or replace a skill without hand-editing dotfiles.
Skills management view in eHub
Suite Manager window in eHub

Suites & scenarios

Collect once, apply everywhere

Bundle skills, agents, rules, hooks, and commands into a named suite, then snap any tool — Codex, Cursor, and the rest — to it instantly, across every project.

  • Save the currently enabled set as a named suite with one click.
  • Apply a suite to a tool as a full reset — every item set in one pass.
  • Reuse the same suite across all your projects, not just one.
  • Stale references degrade gracefully with a warning badge and are skipped.

Sources

Tools and a skills library, managed

Keep your local tooling and the remote skills ecosystem under one roof — discover, install, and apply without leaving the hub.

Tools

Manage your local CLI tools from the hub. See what is installed, keep them organized, and apply capabilities to each one.

Local tools management view in eHub
  • Inventory your local CLIs in one place.
  • Know which tools each capability projects to.
  • Read-only by default — eHub never writes without a plan.

Skills library

Browse the remote skills ecosystem powered by skills.sh. Star what you like and install it into a workspace with one explicit, user-initiated action.

Remote skills library powered by skills.sh
  • Discover community skills via skills.sh.
  • Star and install a skill into a workspace on demand.
  • Explicit installs only — never automatic, always your call.

How it works

Scan. Stage. Apply.

A predictable three-step loop. You always see the plan before a single file changes.

  1. 01

    Scan

    eHub reads your shared root and resolves the live state per tool — enabled, disabled, broken, stale, or foreign.

  2. 02

    Stage

    Toggle capabilities on or off. Nothing touches disk yet — your changes live in memory as a desired-state map.

  3. 03

    Apply

    eHub diffs desired against disk and runs a safe plan: create, replace, refresh, or skip-on-conflict. Partial-tolerant by design.

Safe by default

Filesystem state is the source of truth

No shadow database. No silent overwrites. Just disk, projected cleanly and reversibly.

Rust core owns the disk

Every filesystem mutation happens in the Rust core. The WebView is untrusted and never writes.

Never overwrite real files

Conflicts surface as explicit skip_conflict — a real file or directory at a target is never clobbered.

Atomic, idempotent writes

Dotfiles write via .tmp + rename. Plan and apply are idempotent; per-op failures never abort the rest.

No shell capability

The app ships without the shell plugin. Scoped FS access only, normalized to absolute paths before any op.

Bring order to your AI world.

Stop hand-syncing dotfiles. Manage every skill, agent, and rule from one hub — safely.

macOS only · v0.9.5