Skip to content

feat: add ecosystem plugin system#30

Merged
coopbri merged 2 commits intomasterfrom
feature/plugin-system
Mar 27, 2026
Merged

feat: add ecosystem plugin system#30
coopbri merged 2 commits intomasterfrom
feature/plugin-system

Conversation

@coopbri
Copy link
Copy Markdown
Contributor

@coopbri coopbri commented Mar 26, 2026

Description

Add ecosystem plugin system that lets omni <product> <args> delegate to product CLIs, API adapters, and app launchers via discoverable plugin manifests.

  • Plugin manifest types with TOML parsing (bin, api, launch)
  • Plugin discovery from ~/.config/omni/plugins/ with PATH fallback
  • Plugin execution for bin and launch types
  • CLI routing: omni plugins, omni install, omni uninstall, external subcommand delegation
  • Integration tests and example beacon plugin manifest
  • Changeset for minor version bump

Test Steps

  • Run cargo test plugin -- all unit and integration tests pass
  • Run cargo clippy -- -D warnings -- clean
  • Create a test plugin:
    mkdir -p ~/.config/omni/plugins/hello
    cat > ~/.config/omni/plugins/hello/plugin.toml << 'TOML'
    name = "hello"
    version = "0.1.0"
    description = "Test greeting plugin"
    type = "bin"
    bin = "echo"
    TOML
  • Verify omni plugins lists the hello plugin
  • Verify omni hello world prints "world"
  • Clean up: rm -rf ~/.config/omni/plugins/hello

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 26, 2026

🦋 Changeset detected

Latest commit: 65db92a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@omnidotdev/cli Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

coopbri added 2 commits March 26, 2026 21:45
Add plugin manifest types with TOML parsing (bin, api, launch), plugin
discovery from ~/.config/omni/plugins/ with PATH fallback, plugin
execution for bin and launch types, and CLI routing via external_subcommand.
Includes integration tests and beacon plugin manifest example.
- rand 0.9 -> 0.10 (migrate to RngExt trait)
- toml 0.9 -> 1
- which 7 -> 8
- actions/checkout v4 -> v6
- softprops/action-gh-release v1 -> v2
- patch crates-io agent-core to prevent resolution collision
@coopbri coopbri force-pushed the feature/plugin-system branch from 8da2937 to 65db92a Compare March 27, 2026 01:51
@coopbri coopbri merged commit ef1cb6a into master Mar 27, 2026
4 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Mar 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant