Camel
Named LLM tasks on a local GPU. Each one is a stored prompt with an output contract, so small models give answers my other apps can rely on.
My apps sometimes need a small judgment call: is this email worth a notification, which category does this expense go in, summarize this note. Camel answers those with a model running on a GPU at home, through Ollama.
A task is a stored prompt plus an output contract: a choice from a list, a JSON object matching a schema, or free text. The model is constrained to that shape, which is what makes a 9-billion-parameter model dependable enough to call from code. Callers just run a task by name with a token.
Tasks are versioned, so tuning a prompt is safe to experiment with and easy to revert. An MCP server lets an assistant write and test tasks against real samples with me.