Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fluree Claude Plugins

Claude Code plugins for working with Fluree AI — connecting to your stack, driving the fluree CLI, and generating datasets to load into it.

This repository is a Claude Code plugin marketplace. Add it once, then install any plugin inside it from Claude Code — either the Claude Desktop app (Code mode) or the Claude Code CLI in a terminal.

Have a Fluree AI stack and want Claude Code working against it? Jump to Installation, install fluree-companion, then run /fluree-companion:connect.


What's inside

Three plugins, and the mental model behind them: your stack, the CLI that drives it, and data to put in it. Install the ones that match what you're doing — they're independent, and fluree-companion + fluree-cli are designed to be used together.

Plugin What it does Docs
fluree-companion Connects Claude Code to your Fluree AI (Solo) stack and works against it — capability discovery, the human-approved device login, Space MCP registration, and playbooks that read your stack's own version-pinned docs instead of guessing. Includes /fluree-companion:connect. README
fluree-cli Teaches Claude Code to drive the fluree CLI safely and well — probe-first use of the binary's embedded docs, destructive-op and credential safety rails, and Fluree AI (Solo) remote workflows. Includes /fluree-cli:setup. README
fluree-dataset-generator Interviews you about a domain and generates a complete, validated JSON-LD dataset (RDF model + realistic instance data) ready to load into a Fluree knowledge graph. README

Why a plugin rather than a hosted service: every Fluree AI stack is its own deployment running its own release. So the plugins carry choreography — how to connect, what order to do things in, what not to do — while the knowledge itself stays in your stack and in your fluree binary, where it always matches the version you're actually running.

Marketplace name: fluree-plugins (this is what you reference when installing — see below).


How Claude Code plugins & skills work

New to this? Here's the whole mental model in four bullets — once it clicks, the steps below are obvious:

  • Claude Code is Anthropic's agentic assistant. It runs in two places that share the same plugin system: the Claude Desktop app (flip the top toggle to Code) and the Claude Code CLI in a terminal. Everything in this repo works in both.
  • A marketplace is just a GitHub repo (like this one) that lists plugins. You add a marketplace once.
  • A plugin bundles capabilities — most commonly skills, but also slash commands, subagents, hooks, or MCP servers. You install the plugins you want from a marketplace.
  • A skill is a packaged set of instructions that teaches Claude to do one job well. Skills auto-trigger when your request matches their purpose, or you can invoke one explicitly. You don't "run" a skill like a program — you just talk to Claude, and the skill steers how it responds.

So the entire flow is: add this marketplace → install a plugin → ask Claude to do the thing (or pick the skill from a menu). Installed plugins persist across sessions, so you only do the first two steps once.

Want the official background? See Anthropic's docs on discovering & installing plugins and skills.


Installation

Installing is two steps: (1) add this marketplace, then (2) install a plugin from it. You only add the marketplace once; afterward you can install/update plugins freely.

Option A — Claude Code CLI (terminal)

/plugin marketplace add fluree/claude-plugins
/plugin install fluree-companion@fluree-plugins
/plugin install fluree-cli@fluree-plugins
/plugin install fluree-dataset-generator@fluree-plugins

Notes:

  • The owner/repo shorthand works for public GitHub repos. Claude Code reads .claude-plugin/marketplace.json from the repo root.
  • The @fluree-plugins suffix is required and is the marketplace name (the name field in marketplace.json), not the repo name.
  • Prefer a menu? Run /plugin to open a tabbed UI — Discover (browse/install), Installed (enable/disable/uninstall), Marketplaces (add/update), Errors.
  • If a freshly-added plugin isn't found, refresh with /plugin marketplace update fluree-plugins.

Option B — Claude Desktop app (Code mode)

The click-by-click flow for non-CLI folks. The Desktop UI evolves, so treat the exact button labels below as a snapshot — if one differs in your version, the underlying sequence is always the same:

switch to Code → add this marketplace from GitHub → install the plugin → invoke its skill.

  1. Open Claude Desktop, updated enough that the top of the app shows the Chat | Cowork | Code toggle.
  2. Click Code to switch to the desktop version of Claude Code.
  3. Click Select Folder and choose a folder Claude Code may write to — e.g. ~/Desktop/ClaudeCode/.
  4. Near the input area, find the permission setting (usually Ask Permissions). Keep it on in general. If you're using Claude Code only for these demo plugins, you can switch it to Auto accept edits so they run without you approving every file write.
  5. Click the + icon by the input → Add Plugin (or, if you already have plugins, PluginsManage Plugins).
  6. Click Browse Plugins. (Don't see it? Next to Personal Plugins click +, then Browse Plugins.)
  7. In the modal, you'll see tabs By Anthropic | Your organization | Personal — click Personal.
  8. Click the + icon to add a plugin repository → Add marketplace from GitHub.
  9. Type fluree/claude-plugins and click Sync.
  10. A card appears for each plugin in this marketplace. Hover the one you want and click Install. Once installed, the button changes to Manage.
  11. Back out to the main session with Code selected at the top — you're ready to use it.

Option C — Team / non-interactive (settings.json)

To pre-register the marketplace and auto-enable plugins for a project or team, add to .claude/settings.json (project) or ~/.claude/settings.json (user):

{
  "extraKnownMarketplaces": {
    "fluree-plugins": {
      "source": { "source": "github", "repo": "fluree/claude-plugins" }
    }
  },
  "enabledPlugins": {
    "fluree-companion@fluree-plugins": true,
    "fluree-cli@fluree-plugins": true
  }
}

The object key (fluree-plugins) is the marketplace name users reference in /plugin commands. Project-scoped marketplaces prompt users to trust them before loading.


Using a plugin

Once installed, each plugin contributes a Skill that you can invoke three ways:

  • Ask in plain English — skills auto-trigger on intent, e.g. "connect Claude Code to my Fluree stack", "generate a demo insurance dataset for Fluree", or "query this ledger from the CLI." You don't have to name the plugin.
  • Desktop menu+Plugins → <plugin> → Skills (inserts the skill's slash command, then press Enter).
  • CLI slash command/fluree-companion:connect to set up a stack connection, /fluree-cli:setup to set up the binary, or /fluree-dataset-generator:fluree-dataset-generator to generate data. (The skills auto-trigger; these are the explicit entry points.)

Each plugin's own README has the full usage guide — the stack companion's connection choreography and contract checks in plugins/fluree-companion/README.md, what the CLI skill enforces and how it stays in sync with the binary in plugins/fluree-cli/README.md, and the dataset generator's interview questions, scale guidance, and load instructions in plugins/fluree-dataset-generator/README.md.


Managing & updating

Action CLI
Open the plugin UI /plugin
Update this marketplace /plugin marketplace update fluree-plugins
Update an installed plugin re-run /plugin install fluree-companion@fluree-plugins
Enable / disable / uninstall /pluginInstalled tab

In Claude Desktop, the Manage button on a plugin card (or Plugins → Manage Plugins) covers update/disable/uninstall.


Repository structure

claude-plugins/
├── .claude-plugin/
│   └── marketplace.json                 # marketplace manifest (name: "fluree-plugins")
├── .github/workflows/ci.yml             # validate --strict, version sync, contract checks
├── scripts/
│   ├── check-version-sync.mjs           # marketplace ↔ plugin.json version invariant
│   ├── check-cli-contract.mjs           # cli-facts vs the fluree CLI's release manifest
│   └── check-stack-facts.mjs            # stack-facts vs solo's router endpoint manifest
└── plugins/
    ├── fluree-companion/
    │   ├── .claude-plugin/
    │   │   └── plugin.json
    │   ├── README.md
    │   ├── commands/connect.md          # /fluree-companion:connect
    │   ├── contract/
    │   │   ├── stack-facts.json         # every stack path/slug/tool the plugin names
    │   │   └── cli-facts.json           # the fluree commands its choreography names
    │   └── skills/
    │       └── fluree-companion/
    │           ├── SKILL.md             # stack-first operating doctrine
    │           └── references/          # connect choreography, stack knowledge, playbooks
    ├── fluree-cli/
    │   ├── .claude-plugin/
    │   │   └── plugin.json
    │   ├── README.md
    │   ├── .mcp.json                    # auto-connects `fluree mcp serve --toolsets docs`
    │   ├── commands/setup.md            # /fluree-cli:setup
    │   ├── contract/cli-facts.json      # every CLI fact the plugin hard-codes (CI-checked)
    │   └── skills/
    │       └── fluree-cli/
    │           ├── SKILL.md             # probe-first operating doctrine
    │           └── references/          # workflows, remote/Fluree AI, policy, troubleshooting
    └── fluree-dataset-generator/
        ├── .claude-plugin/
        │   └── plugin.json              # plugin manifest (name, version, author)
        ├── README.md                    # plugin usage guide
        └── skills/
            └── fluree-dataset-generator/
                ├── SKILL.md             # the skill's instructions to Claude
                └── scripts/             # Python validators run during generation

How the plugins stay honest

Both companions defer their reference material to a producer — the fluree binary's embedded docs, and your stack's own served docs — so they can't go stale when either one ships a new release. The few facts their prose does hard-code live in a contract/ file per plugin and are validated in CI against an artifact the producer publishes: cli-facts.json against the fluree-cli-manifest.json release asset from fluree/db, and stack-facts.json against the generated router endpoint manifest from fluree/solo. If a release changes something a plugin says, CI fails here before a user hits it.


For maintainers — adding a plugin

  1. Create plugins/<plugin-name>/ with a .claude-plugin/plugin.json:
    {
      "name": "<plugin-name>",
      "description": "<one-liner>",
      "version": "1.0.0",
      "author": { "name": "Fluree Dev Rel" }
    }
  2. Add the plugin's capabilities — e.g. a Skill under skills/<skill-name>/SKILL.md (plus any bundled scripts), or commands/agents/hooks per the plugin reference.
  3. Register it in .claude-plugin/marketplace.json under plugins:
    {
      "name": "<plugin-name>",
      "source": "./plugins/<plugin-name>",
      "description": "<one-liner>",
      "version": "1.0.0"
    }
  4. Write a plugins/<plugin-name>/README.md and link it from the table above.
  5. Commit, push, and have testers run /plugin marketplace update fluree-plugins to pull it.

Keep version in plugin.json and marketplace.json in sync, and bump it on changes so users get updates.


Support

About

Internal Claude Code plugins for Fluree

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages