Skip to content

SparkyFitness ​

SparkyFitness is a self-hosted nutrition, fitness and health tracker. Its AI assistant uses a global OpenAI-compatible service that an admin sets up once.

Upstream: source.

Plugboard options ​

Give SparkyFitness its own key. Plugboard must bind an address the SparkyFitness server reaches (Serving other machines).

jsonc
{
  "options": {
    "listen": { "host": "0.0.0.0", "port": 4010 },
    "keys": { "sparkyfitness": "{env:PLUGBOARD_KEY_SPARKYFITNESS}" },
    "models": ["anthropic/claude-sonnet-4-6"],
    "aliases": { "chat": "anthropic/claude-sonnet-4-6" },
    "apps": { "sparkyfitness": { "allowedModels": ["chat"] } }
  }
}

Connect ​

In the admin settings, open Global AI Settings and add a service:

FieldValue
Typeopenai_compatible
Base URLhttp://<plugboard-host>:4010/v1, over your LAN or tailnet
Modelchat
API keythe sparkyfitness key

Plugboard speaks plain HTTP, so keep this on a network you trust (Remote access).

What works ​

Chat, and tool calls. SparkyFitness runs the tools and sends the results back (Tool calls).

Limits ​

  • SparkyFitness stores the provider key encrypted and needs its own encryption key to read it. Back up that key with the app's secrets, or you must re-enter the provider key.
  • Chat fails while plugboard is down. After an OpenCode restart the port stays closed until something touches the server (Warm-up).
  • Set limits or budgets for the sparkyfitness app if you want a cap on its calls.