Planck v0.1.6
Highlights
- Drop llama-cpp from Docker stack — no more bundled local LLM or 1 GB model download on first install. Configure any provider (NVIDIA NIM, Groq, Ollama, Anthropic, OpenAI, Google) through the new setup wizard after first launch.
- Streamlined provider model —
:ollama,:llama_cpp, and:custom_openaiprovider atoms are gone. OpenAI-compatible endpoints (Ollama, NVIDIA, Groq, vLLM, etc.) now use:openai+base_url. Fewer concepts, same capability. - SetupModal overhaul — guided first-run onboarding and a returning-user settings screen replace the old bare config editing.
- Duplicate models fix — editing a model no longer creates duplicate entries when global and local configs overlap.
- Idempotent install scripts — re-running
install_docker.sh/install_docker.ps1adds missing.envkeys without overwriting existing values.
Breaking Changes
Provider atoms simplified (planck_ai, planck_agent)
Valid provider atoms are now :anthropic | :openai | :google only.
| Removed | Replacement |
|---|---|
:ollama |
:openai + base_url: "http://localhost:11434" |
:llama_cpp |
:openai + base_url: "<server>" |
:custom_openai |
:openai + base_url: "<endpoint>" |
spawn_agent tool provider enum updated accordingly — "ollama", "llama_cpp", and "custom_openai" are no longer accepted.
New config schema (planck_headless)
config.json now separates provider definitions from model declarations. The old flat models list format is replaced:
{
"providers": {
"anthropic": { "type": "anthropic" },
"nvidia": { "type": "openai", "base_url": "https://integrate.api.nvidia.com/v1", "identifier": "NVIDIA" },
"local": { "type": "openai", "base_url": "http://localhost:11434", "has_api_key": false }
},
"models": [
{ "id": "sonnet", "model": "claude-sonnet-4-6", "provider": "anthropic" },
{ "id": "llama70b", "model": "meta/llama-3.3-70b-instruct", "provider": "nvidia" }
]
}The SetupModal writes this format automatically — no manual migration needed for new installs.
Removed APIs (planck_ai)
Planck.AI.Config.from_map/1,from_list/1,load/1— replaced byPlanck.AI.Config.from_config/2Planck.AI.Models.CustomOpenAI,Planck.AI.Models.Ollama,Planck.AI.Models.LlamaCpp— superseded byPlanck.AI.Models.OpenAIwithbase_url:
What's New
planck_ai
Planck.AI.Config.from_config/2— builds[Model.t()]from a providers map and models list (v0.1.6 config format)Planck.AI.Modelgainsmodelfield — actual provider model identifier (e.g."claude-sonnet-4-6");idis now the user-facing aliasPlanck.AI.Modelgainshas_api_key: boolean()— whenfalse, skips env-var lookup; for keyless local serversPlanck.AI.Models.OpenAI.all/1acceptsbase_url:to query a custom server's/modelsendpoint:openaiwithbase_urlset routes to the OpenAI-compatible adapter; without it uses the standard OpenAI path
planck_headless
configure_provider/1— persists a provider entry toconfig.jsonand API key to.env, then reloads resourcesconfigure_model/1— persists a model entry toconfig.json, then reloads resources- Duplicate model fix —
Enum.uniq_by/2onidwhen merging global and local config files; local config wins on conflict
planck_cli — SetupModal
First-time onboarding (shown automatically when no providers or models are configured):
- Step 1: provider type picker (Anthropic, Google, OpenAI, OpenAI-compatible); preset dropdown for compatible endpoints (NVIDIA NIM, Groq, Ollama, llama.cpp, Other) with
base_url,identifier, andhas_api_keypre-filled; "Get started for free" links to NVIDIA NIM, Groq, and Google AI Studio - Step 2: model picker; alias field; set-as-default checkbox; JSON inference params; scope selector (project or global)
Returning users (⚙ button): choose between "Configure a provider" or "Configure a model"; selecting an existing model pre-fills its current settings for editing.
planck_docker
llama-cppservice andplanck_docker/llama-cpu/Dockerfileremoved- Default config is now
{}— SetupModal opens automatically on first launch install_docker.sh/install_docker.ps1: model download removed;add_if_missingpattern for.env(idempotent re-runs);compose.ymlalways re-downloaded to pick up updates
Docker Install
curl -fsSL https://raw.githubusercontent.com/alexdesousa/planck/v0.1.6/docs/install_docker.sh | bashirm https://raw.githubusercontent.com/alexdesousa/planck/v0.1.6/docs/install_docker.ps1 | iex