Skip to content

A lightweight AI shell assistant that converts natural language to shell commands and provides realtime autocomplete as you type.

License

Notifications You must be signed in to change notification settings

zeke-john/komplete

Repository files navigation

Komplete

A lightweight AI shell assistant that converts natural language to shell commands and provides realtime autocomplete as you type.

So the two features are ->

  • Natural language to shell commands: k count all the .ts are in this folder generates the command(s), asks for confirmation, and runs them.
  • Inline realtime autocomplete: Non-intrusive and instant ghost-text autocomplete suggestions as you type, like copilot for your terminal.

An example below of komplete in action!

komplete.mp4

Install

brew tap zeke-john/tap
brew install komplete
# macOS will block the binary the first time so run ->
xattr -dr com.apple.quarantine "$(which komplete)"

Add to your .zshrc:

eval "$(komplete init zsh)"

Then open a new terminal (or source ~/.zshrc). This gives you:

  • The k shorthand (k = komplete)
  • Inline autocomplete (ghost-text suggestions as you type)

Setup

Set your API keys:

komplete config set openrouter_api_key sk-or-v1-your-key-here
komplete config set groq_api_key gsk_your-key-here

Usage

You can use either komplete or k ->

k clean up docker storage
k show disk usage for this folder
k find all .go files in this repo
k list running processes on port 3000
k show last 5 git commits

Komplete generates a command plan, shows it to you, and asks for confirmation before running anything.

Command ->
  1) docker volume prune -f

Run this command? [y/N/#]

Type y to run all, n to cancel, or a number to run a specific command.

Flags

k --dry-run delete all node_modules       # show plan without running
k --verbose list files                    # show request/response metadata
k --model openai/gpt-oss-20b list files   # use a different model

Inline Autocomplete

Ghost-text suggestions as you type, using Groq's fast inference with llama-3.1-8b-instant. Suggestions appear instantly as you type, predicting what you're about to write based on context.

The autocomplete is smart enough to understand your intent and suggest complete commands with proper flags, arguments, and syntax. It's non-intrusive and the subtle ghost text that appears ahead of your cursor doesn't interrupt your flow.

  • Tab - accept the full suggestion
  • Shift+Tab or Option+F - accept one word at a time

If you only want the k alias without autocomplete, use eval "$(komplete init alias)" instead.

Config

All settings are stored in ~/.config/komplete/config.toml.

komplete config list  # show all configured values
komplete config path  # print the config file path

Available Commands

# API keys
komplete config set openrouter_api_key sk-or-v1-xxx   # for natural language commands
komplete config set groq_api_key gsk_xxx              # for inline autocomplete
# Model for natural language commands (default: openai/gpt-oss-safeguard-20b)
komplete config set model anthropic/claude-haiku-4.5
komplete config set model google/gemini-3-flash
# Autocomplete model on Groq (default: llama-3.1-8b-instant)
komplete config set groq_model llama-3.3-70b-versatile
# Shell and environment
komplete config set shell /bin/zsh    # override detected shell
komplete config set cwd /path/to/dir  # override working directory

Other Commands

komplete version     # print version
komplete init zsh    # output the zsh autocomplete plugin
komplete init alias  # output alias k=komplete

About

A lightweight AI shell assistant that converts natural language to shell commands and provides realtime autocomplete as you type.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published