Docs

Koodla AI is a coding agent that runs in your terminal. The command is koodla. It reads your project, makes the change you ask for, and asks before every write.

Command line only, for now. There is no desktop app and no editor extension.

Install

All you need is Node.js 20 or later. Choose the command for your system:

macOS and Linux

curl -fsSL https://koodla.co/koodla/install.sh | bash

Windows PowerShell

irm https://koodla.co/koodla/install.ps1 | iex

The install script checks your Node version, unpacks into ~/.koodla, installs dependencies, creates the koodla shortcut and sets up PATH for you. If a helper like ripgrep is missing it quietly tries to install it; if it cannot, it tells you what is missing.

Requirements

WhatRequiredIf missing
node 20+yesinstall stops
npmyesinstall stops
ripgrepnosearch falls back to grep, a little slower
python3nosyntax check is skipped for Python files
gitnoupdates download a package instead

First run

Connect the terminal once with koodla login. It gives you a one-time code and opens the secure account flow in your browser:

Koodla — first run

Sign in to connect this terminal.
Browser opened: https://platform.koodla.co/terminal-login
Waiting for approval…

Sign in with your Koodla account and approve the one-time code. Models are called through Koodla's servers and usage is deducted from your plan. You never enter or manage a model provider API key.

Usage

Change into a project directory and type koodla:

Current Koodla terminal showing a project-aware conversation, collapsed tool activity, plan usage and a write approval
The current interface keeps the conversation readable while tool activity, plan usage, and approvals stay close at hand.

Write what you want in plain language. Ask for code, ask for a bug fix, ask how something works, or just talk — the agent decides for itself what the request needs.

One-off task

koodla "set the shipping fee to 49"
koodla ~/mysite "fix the bug in the login form"   # give the folder up front

Switching project

Inside a session use /project <path>. All of these work:

What you typeMeans
/home/you/mysiteabsolute path
~/mysitefrom your home directory
masaüstü/mysitefrom the desktop (Desktop / Masaüstü, resolved per OS)
mysitename only — current directory, desktop and home are searched

Commands

CommandWhat it does
koodlaopens a session
koodla "task"runs one task and exits
koodla <folder> "task"runs one task in that folder
koodla loginconnects this terminal to your Koodla account
koodla whoamishows the connected account, plan, and usage left
koodla logoutrevokes this terminal's session and removes it locally
koodla updatepulls the latest version; keeps your account connected
koodla versionprints the installed version
koodla logusage log summary: cost, turns, tool calls
koodla uninstallremoves the install and the PATH line (asks first)

Inside a session

CommandWhat it does
/project <path>switch project
/contextwhat goes to the model on every request, with token counts
/costwhat this session has cost: tasks, tokens, cache ratio, total
/diffwhich files changed in this session
/undoundo the last task's file changes
/modefast, auto or deep — how hard the agent works
/deny <pattern>block a path, e.g. /deny ~/Documents/**
/allow <pattern>remove a block, or pre-approve a tool
/clearforget earlier tasks in this session
/approve-alltoggle approval prompts for the current session
/login · /logoutconnect or disconnect your Koodla account without leaving the session
/help · /exithelp · quit

Working modes

ModeWhat changesGood for
fastno planning step, one cheap model, fewer turnssmall fixes you already located
autoplanning step, then the writing model — the defaultmost work
deepthe strong model writes too, more turns allowedarchitecture, tangled bugs

Models

Models are included with your Koodla plan. Requests go from the terminal to Koodla's servers, where the selected model is called on your behalf. No provider API key is stored on or sent to your computer.

Available models and their current status can change as the catalogue evolves. See the Models page for details.

Sign in on first run. Koodla opens a secure browser page and connects your account to the terminal with a one-time code.

Settings

These optional environment settings change local CLI behaviour. Your available models still come from your Koodla plan and the current server catalogue.

VariableWhat it does
KOODLA_ONAY=0skip the approval prompt before writing
KOODLA_GUNLUK=0turn off the usage log
KOODLA_DEBUG=0turn off the local input debug log
NO_COLOR=1turn off colours
Approval is on by default. Use /approve-all when you only want to disable it for the current session. KOODLA_ONAY=0 disables it for every session launched with that environment setting.

Project rules

Drop a REY.md (or AGENTS.md, CLAUDE.md) in the project and its contents are attached to every request. Parent folders are read too, so a rule at the top still applies while you work in a subfolder.

# Rules for this project
- Tests: npm test
- Money is stored as integers so rounding never drifts.
- Every new API endpoint gets input validation.

Up to 8 KB is read — this text goes to the model on every turn.

Behaviour

When you hand it a task, this is what you see, in order:

  1. It identifies the project. Language and framework are worked out on its own.
  2. It locates the work. It searches when it has to, and what it searches for scrolls past on screen.
  3. It prepares the change and asks. Refuse and nothing is written.
  4. It checks its own work. If the file no longer parses it notices and fixes it.
  5. It prints the cost. Duration, turn count and cost come last.
  6. It plans multi-step work. When a job needs several steps it writes the list first and ticks each one off as it goes. The list is fed back to it every time, so it does not lose the thread halfway through.
  7. It shows the change before writing. Lines leaving in red, lines arriving in green, with the line number — then it asks. You approve what you can see.
  8. It remembers the last few tasks. Ask for a fix, then say "now write a test for it" — it knows what you mean. The last three tasks are carried as a short summary, not as the full transcript, so it costs almost nothing. If the summary is not enough, it can open the full record of an earlier task by itself.

If the request is small talk or a general question it answers without opening a file. auto decides how to approach coding tasks by default; use /mode when you want to choose a faster or deeper workflow yourself.

Security

Measurement

A 12-task set was built on three real projects (JavaScript, Python, Go). For each task a bug was planted in working code and the correct fix recorded separately. The same tasks were then run side by side with another widely used coding agent.

Comparison agentKoodla AI
test passed12/1212/12
touched the right file12/1212/12
cost per task$0.2532$0.0361
time per task42s44s
turns9.44.3
This set has a ceiling. Both sides passed 12 of 12, so the set cannot measure a difference in accuracy; only the cost difference is meaningful. The tasks were one- or two-file fixes. Until a harder set exists we do not claim broader accuracy — only the same result at a lower measured cost on this particular set.

The difference does not come from one trick; it comes from measuring what gets sent to the model, and how many times, end to end.

The cost comparison above covers 12 tasks run on both sides (24 runs). Separately, 10 SWE-bench Verified tasks were run across four models and two context settings (80 runs). Those additional runs informed context and model choices; they are not part of the competitor cost comparison.

Troubleshooting

SymptomCause and fix
koodla: command not foundThe PATH change has not taken effect. Open a new terminal or run source ~/.zshrc.
401 … sign in requiredRun koodla login and connect the terminal from the browser page.
402 … plan limit reachedYour Koodla plan usage is exhausted. Check your account for current usage.
Cannot find moduleRun npm install in ~/.koodla/rey.
It changed the wrong fileThe change is offered for approval; refuse it and be more specific (name the file or the function).
It cost too muchRun koodla log to see what each task cost. The usual cause is turn count.

Limitations

These are today’s limits. We would rather write them down than hide them.