Metadata-Version: 2.4
Name: cbyzt-ycode
Version: 0.1.0
Summary: YCode — a minimal, professional code agent powered by DeepSeek
Author: cbyzt
License-Expression: MIT
Project-URL: Homepage, https://github.com/cbyzt/ycode
Project-URL: Repository, https://github.com/cbyzt/ycode
Keywords: ai,agent,cli,deepseek,coding-assistant
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai>=1.40
Requires-Dist: rich>=13.7
Requires-Dist: pyyaml>=6.0
Dynamic: license-file

# YCode

A minimal, professional command-line code agent powered by DeepSeek. No IDE —
launch it from PowerShell, give it a task, and it edits files, runs commands, and
completes work through a tool loop. Extensible via markdown **skills**.

## Install

```powershell
pip install -e .
$env:DEEPSEEK_API_KEY = "sk-..."   # or: setx DEEPSEEK_API_KEY sk-...
```

Requires Python 3.11+.

## Run

```powershell
ycode          # or: python -m ycode
```

Type a request in plain language. YCode will read files, propose edits, and run
commands to accomplish it. Read-only actions run automatically; anything that
writes files or runs a shell command asks for confirmation first (`y`/`n`/`a`).

## Commands

| Command            | Description                                   |
| ------------------ | --------------------------------------------- |
| `/help`            | List commands and skills                      |
| `/clear`           | Clear the conversation (keeps the system prompt) |
| `/model [flash\|pro]` | Show or switch model                       |
| `/init`            | Scan the project and generate `YCODE.md`      |
| `/exit`            | Quit                                          |

## Models

- `flash` → `deepseek-v4-flash` (default: fast, cheap, 1M context)
- `pro` → `deepseek-v4-pro` (frontier reasoning for hard tasks)

## Skills

A skill is a directory with a `SKILL.md` file:

```yaml
---
name: my-skill
description: One line the model uses to decide relevance.
invocation: both      # slash | auto | both
kind: prompt          # prompt (inject body) | control (run Python)
---
Markdown instructions injected into the conversation when the skill runs.
```

Built-in skills live in `ycode/skills/builtin/`. Project skills are discovered
from `.ycode/skills/` in your working directory. `invocation` controls triggering:
typed `/name`, model-initiated via `load_skill`, or both.

## Tools

`read_file`, `write_file`, `edit_file`, `ls`, `glob`, `grep`, `run_shell`,
`ask_user` (interactive arrow-key selector), `load_skill`.
