Skip to content

Planck v0.1.6

Choose a tag to compare

@github-actions github-actions released this 20 May 21:53
· 64 commits to main since this release
b4e57c6

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_openai provider 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.ps1 adds missing .env keys 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 by Planck.AI.Config.from_config/2
  • Planck.AI.Models.CustomOpenAI, Planck.AI.Models.Ollama, Planck.AI.Models.LlamaCpp — superseded by Planck.AI.Models.OpenAI with base_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.Model gains model field — actual provider model identifier (e.g. "claude-sonnet-4-6"); id is now the user-facing alias
  • Planck.AI.Model gains has_api_key: boolean() — when false, skips env-var lookup; for keyless local servers
  • Planck.AI.Models.OpenAI.all/1 accepts base_url: to query a custom server's /models endpoint
  • :openai with base_url set routes to the OpenAI-compatible adapter; without it uses the standard OpenAI path

planck_headless

  • configure_provider/1 — persists a provider entry to config.json and API key to .env, then reloads resources
  • configure_model/1 — persists a model entry to config.json, then reloads resources
  • Duplicate model fix — Enum.uniq_by/2 on id when 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, and has_api_key pre-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-cpp service and planck_docker/llama-cpu/Dockerfile removed
  • Default config is now {} — SetupModal opens automatically on first launch
  • install_docker.sh / install_docker.ps1: model download removed; add_if_missing pattern for .env (idempotent re-runs); compose.yml always re-downloaded to pick up updates

Docker Install

curl -fsSL https://raw.githubusercontent.com/alexdesousa/planck/v0.1.6/docs/install_docker.sh | bash
irm https://raw.githubusercontent.com/alexdesousa/planck/v0.1.6/docs/install_docker.ps1 | iex