Metadata-Version: 2.4
Name: qodey
Version: 1.0.1
Summary: Qodey — local-first AI coding agent for your terminal, powered by Ollama.
Author: Qodey
License: MIT
Project-URL: Homepage, https://github.com/qodey/qodey
Project-URL: Issues, https://github.com/qodey/qodey/issues
Keywords: ai,coding-agent,ollama,terminal,llm,vibe-coding
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich>=13.7.0
Requires-Dist: requests>=2.31.0
Dynamic: license-file

<p align="center">
  <img src="logo.png" alt="Qodey logo" width="480" />
</p>

# Qodey

A coding agent for your terminal that runs on your own models. It uses Ollama, so everything stays on your machine — no accounts, no API keys, no cloud.

You type `qodey`, describe what you want, and it pokes around your project, edits files, runs commands, and fixes its own errors until the job is done (or it gets genuinely stuck, in which case it says so).

## You need

- Python 3.9+
- [Ollama](https://ollama.com) installed and running (`ollama serve`)
- At least one model, e.g. `ollama pull qwen2.5-coder:32b`

One honest note: coder models work noticeably better than plain chat models. A small chat model can still use Qodey, it will just fumble the tools more often.

## Install

```powershell
pip install qodey
qodey
```

From source, if you want to hack on it:

```powershell
pip install -e .
python -m qodey
```

Or isolated with pipx:

```powershell
pipx install qodey
```

## What it does

- Figures out what's in your folder (React app, Python script, Rust crate, empty dir, …)
- Reads, writes, and edits files; creates folders; searches code
- Runs shell commands — installs, builds, tests — and actually reads the output when they fail
- Asks before anything destructive. Reads never ask; writes and commands do, unless you switch to auto mode

A typical exchange:

```text
❯ add validation to the signup form

  ◉ Reading src/Signup.tsx…
  ✓ Reading src/Signup.tsx
  ◉ Editing src/Signup.tsx…
  ✓ Editing src/Signup.tsx

Done — email and password are validated on submit, errors show
under each field. `npm test` passes.
```

## Commands

| Command        | Does                                   |
|----------------|----------------------------------------|
| `/help`        | Show commands                            |
| `/open`        | Switch to a different folder             |
| `/models`      | List your installed Ollama models        |
| `/model`       | Switch model (`/model <name>`)           |
| `/status`      | Show system status                       |
| `/files`       | List project files                       |
| `/tree`        | Show project tree                        |
| `/run`         | Run a shell command                      |
| `/plan`        | Toggle planning mode                     |
| `/settings`    | View and change settings                 |
| `/permissions` | Switch permission mode (auto/confirm/safe) |
| `/compact`     | Summarize old context to save space      |
| `/clear`       | Clear the conversation                   |
| `/exit`        | Quit                                     |

## Permissions

Three modes, default is `confirm`:

- `confirm` — reads happen freely, writes and commands ask first
- `auto` — everything runs without asking (your funeral with `rm -rf`)
- `safe` — asks about practically everything

Change with `/permissions`.

## Config

Lives at `~/.qodey/config.json`. You usually don't need to touch it — `/settings` covers the common stuff — but it's plain JSON if you want to:

```json
{
  "ollama_url": "http://127.0.0.1:11434",
  "default_model": "qwen2.5-coder:32b",
  "temperature": 0.2,
  "permission_mode": "confirm",
  "plan_mode": true,
  "max_agent_steps": 25
}
```

## How it works

Each turn, Qodey sends the model a short description of your project (file list, detected stack — never whole files), the model answers with text plus tool calls, Qodey runs them, feeds the results back, and repeats until there's nothing left to do. If a tool call gets denied or a command fails, the model sees that and adjusts.

## License

MIT
