alaska-cli

module
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2026 License: MIT

README

Alaska CLI

Interactive terminal REPL for Large Language Models with pluggable providers. Ships with first-class support for OpenAI and Anthropic, and lets you plug in any OpenAI-compatible endpoint as a custom provider via config.

Status: early development. See ROADMAP.md.


Install

One-liner (Linux & macOS)
curl -fsSL https://raw.githubusercontent.com/rustoreDEV/alaska-cli/main/install.sh | sh
One-liner (Windows, PowerShell)
iwr -useb https://raw.githubusercontent.com/rustoreDEV/alaska-cli/main/install.ps1 | iex
From source (requires Go 1.25+)
go install github.com/rustoreDEV/alaska-cli/cmd/alaska@latest
OS prerequisites
OS Requirement
Ubuntu / Debian sudo apt install libsecret-1-0
Arch / Manjaro sudo pacman -S libsecret
Fedora sudo dnf install libsecret
Windows None — uses built-in Credential Manager
macOS None — uses built-in Keychain

Quick start

# Log in to a provider (stores the key in the OS keyring)
alaska anthropic         # first run prompts for ANTHROPIC_API_KEY
# or
alaska openai            # first run prompts for OPENAI_API_KEY

The shortcut subcommands detect whether a key is stored and walk you through login on the first run, then drop you into the chat.

You can also use the generic root command:

alaska --provider anthropic --model claude-opus-4-7
alaska                                  # uses default_provider / default_model

REPL commands

Command Description
/help Show commands
/model [id] Switch model — no id opens an interactive picker
/models List models available for the current provider
/provider <name> Switch provider (clears history)
/providers List configured providers
/system [prompt] Set or clear the system prompt (clears history)
/history Show the current conversation
/reset Clear history
/exit / Ctrl+D Quit
Ctrl+C Cancel the current streaming response

Readline-style line editing, persistent history (~/.config/alaska/repl_history), up/down recall, and reverse search are all on.

Configuration

Config lives at:

OS Path
Linux ~/.config/alaska/config.toml
macOS ~/Library/Application Support/alaska/config.toml
Windows %APPDATA%\alaska\config.toml

Example — Anthropic + OpenAI + a custom Groq provider:

default_provider = "anthropic"
default_model    = "claude-opus-4-7"

[providers.anthropic]
type = "anthropic"

[providers.openai]
type = "openai"

# Any OpenAI-compatible API works as a custom provider:
[providers.groq]
type     = "openai"
base_url = "https://api.groq.com/openai/v1"

API keys are never written to this file — they go into the OS keyring (libsecret / Keychain / Credential Manager), one entry per provider.

Manage them with:

alaska config login <provider>     # stores the key
alaska config logout <provider>    # removes it
alaska config show                 # shows config + which providers have keys
alaska config path                 # prints the path to config.toml
alaska config set default_provider anthropic
alaska config set default_model    claude-opus-4-7

Supported platforms

  • Linux — Ubuntu 22.04+, Arch, Manjaro, Fedora; amd64 & arm64
  • Windows — 10 / 11; amd64
  • macOS — 12+; amd64 & arm64

Roadmap

See ROADMAP.md. Highlights still to come: tool/function calling, file attachments (/attach), richer model discovery via provider /models endpoints, persistent session history.

Contributing

Contributions welcome. For anything non-trivial, open an issue first to align on design. Before submitting a PR:

go build ./...
go vet ./...
go test -race ./...

License

MIT

Directories

Path Synopsis
cmd
alaska command
internal
cli
config
Package config handles loading and saving Alaska's TOML configuration.
Package config handles loading and saving Alaska's TOML configuration.
permissions
Package permissions holds Alaska's per-tool permission policy.
Package permissions holds Alaska's per-tool permission policy.
provider
Package provider defines Alaska's LLM provider abstraction.
Package provider defines Alaska's LLM provider abstraction.
provider/anthropic
Package anthropic implements the provider.Provider interface on top of the official anthropics/anthropic-sdk-go client.
Package anthropic implements the provider.Provider interface on top of the official anthropics/anthropic-sdk-go client.
provider/factory
Package factory constructs a provider.Provider from a config entry + OS keyring.
Package factory constructs a provider.Provider from a config entry + OS keyring.
provider/openai
Package openai implements the provider.Provider interface on top of the official openai/openai-go client.
Package openai implements the provider.Provider interface on top of the official openai/openai-go client.
repl
Package repl implements Alaska's interactive chat loop.
Package repl implements Alaska's interactive chat loop.
secrets
Package secrets wraps the OS keyring for Alaska's API keys.
Package secrets wraps the OS keyring for Alaska's API keys.
tool
Package tool defines Alaska's agent tools — the capabilities the model can invoke from inside a chat turn (read/write/edit files, run shell commands).
Package tool defines Alaska's agent tools — the capabilities the model can invoke from inside a chat turn (read/write/edit files, run shell commands).
ui
Package ui centralises Alaska's terminal styling so the rest of the code can stay unopinionated about colour and layout.
Package ui centralises Alaska's terminal styling so the rest of the code can stay unopinionated about colour and layout.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL