Skip to content

plugin-ollama

Placement compiled-in (in-process)
Source github.com/opencharly/plugin-ollama/candy/plugin-ollama
Version 2026.229.1013
Candy plugin-ollama

This plugin is listed in charly/charly.yml’s compiled_plugins:, so its providers are compiled into the charly binary and register in-process.

The reserved words this plugin serves:

  • ollama — command class

COMPILED-IN charly COMMAND-class plugin (command:ollama) OWNING the entire charly ollama CLI — the host-side management surface for a DEPLOYED Ollama server: list / ps / pull / rm / show / cp / create / push / run / stop / version. The plugin owns the ENTIRE logic: the hand-rolled subcommand grammar AND the Ollama HTTP API calls, built on the official upstream Go client (github.com/ollama/ollama/api, pinned in the candy’s own go.mod). There is NO core ollama logic and NO HostBuild seam.

The command talks to the server over plain HTTP, so it is fully self-contained and works IDENTICALLY compiled-in OR out-of-process: listed in charly.yml compiled_plugins it registers in-proc and the host dispatches it through dispatchInProcCommand → Invoke(OpRun) → runOllamaCLI; the out-of-process placement fork/execs cmd/serve → CliMain running the SAME runOllamaCLI. Endpoint resolution is deliberately lightweight: –server flag > OLLAMA_HOST env

http://127.0.0.1:11434.

This is a sibling of the ollama CANDY (candy/ollama — which deploys the server) and of the candy’s host shell alias: ollama (which execs the upstream CLI inside the container): three disjoint surfaces. Full Modelfile authoring stays with the upstream CLI; charly ollama create covers the lightweight –from form.

The R10 witness is the disposable check-ollama-pod bed (box/fedora): it deploys the ollama image and runs charly ollama list|version --server http://127.0.0.1:${HOST_PORT:11434} host-side against the live server, plus the candy’s baked checks.

The CUE schema below is the authoritative grammar for this plugin’s input. It is the same single source that generates the plugin’s Go parameter types and answers the runtime Describe RPC, so this page cannot disagree with either.

// plugin-ollama's OWN self-contained CUE schema — the SINGLE SOURCE for this plugin's
// served declaration surface (there is no schema-less plugin: every plugin ships a
// non-empty schema over Describe).
//
// SELF-CONTAINED and PACKAGE-LESS: it references no base def and carries no package
// clause, so it compiles STANDALONE — the property the SDK's serve-side compile needs
// and the property that lets the host splice `base ++ plugin` at the load gate
// (registerPluginUnitSchema); a self-contained schema that will not splice is a LOUD
// load failure.
//
// NO GO CONSUMER: the plugin declares no typed `plugin_input` (its authored input is
// its pass-through CLI grammar), so this schema generates NO `params` package and has
// NO `cue exp gengotypes` artifact — it is the SERVED documentation/config surface,
// not a code-generation source.
//
// It DOCUMENTS the `command: ollama` contract and the endpoint/config surface the CLI reads (`--server` flag > `OLLAMA_HOST` env > the declared default).
#OllamaPlugin: {
// The command word the plugin serves.
command: "ollama"
// What the command does, in one line (the public-docs surface).
contract: string & !=""
// Endpoint resolution: --server flag > OLLAMA_HOST env > this default.
default_endpoint: "http://127.0.0.1:11434"
}

See also the candy reference for this candy’s install surface.