Metadata-Version: 2.4
Name: pocketcoder
Version: 1.0.0
Summary: AI-powered coding assistant optimized for local LLMs
Project-URL: Homepage, https://github.com/Chashchin-Dmitry/pocketcoder
Project-URL: Documentation, https://github.com/Chashchin-Dmitry/pocketcoder#readme
Project-URL: Repository, https://github.com/Chashchin-Dmitry/pocketcoder
Author: PocketCoder Team
License-Expression: MIT
License-File: LICENSE
Keywords: ai,assistant,coding,llm,ollama
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Requires-Dist: click>=8.1.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: prompt-toolkit>=3.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: requests>=2.31.0
Requires-Dist: rich>=13.0.0
Provides-Extra: all
Requires-Dist: black>=23.0.0; extra == 'all'
Requires-Dist: gradio>=4.0.0; extra == 'all'
Requires-Dist: mypy>=1.7.0; extra == 'all'
Requires-Dist: pytest-cov>=4.1.0; extra == 'all'
Requires-Dist: pytest>=7.4.0; extra == 'all'
Requires-Dist: responses>=0.24.0; extra == 'all'
Requires-Dist: ruff>=0.1.0; extra == 'all'
Requires-Dist: tree-sitter-javascript>=0.21.0; extra == 'all'
Requires-Dist: tree-sitter-python>=0.21.0; extra == 'all'
Requires-Dist: tree-sitter>=0.21.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: mypy>=1.7.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=7.4.0; extra == 'dev'
Requires-Dist: responses>=0.24.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: treesitter
Requires-Dist: tree-sitter-javascript>=0.21.0; extra == 'treesitter'
Requires-Dist: tree-sitter-python>=0.21.0; extra == 'treesitter'
Requires-Dist: tree-sitter>=0.21.0; extra == 'treesitter'
Provides-Extra: web
Requires-Dist: gradio>=4.0.0; extra == 'web'
Description-Content-Type: text/markdown

# PocketCoder

AI-powered coding assistant that works with any LLM — local or cloud.

## Features

- **Any LLM**: Works with Ollama, OpenAI, Claude, or any OpenAI-compatible API
- **Session Memory**: Continues where you left off
- **RepoMap**: Understands your project structure
- **Optimized for Local Models**: Works great with 7B-14B parameter models

## Quick Start

```bash
pip install pocketcoder
pocketcoder
```

On first run, a setup wizard will help you configure your LLM provider.

## Supported Providers

| Provider | Models | Setup |
|----------|--------|-------|
| **Ollama** | qwen2.5-coder, llama3, etc. | `ollama serve` |
| **OpenAI** | gpt-4o, gpt-4o-mini | `OPENAI_API_KEY` |
| **Anthropic** | claude-sonnet, claude-haiku | `ANTHROPIC_API_KEY` |
| **Any OpenAI-compatible** | vLLM, LM Studio, etc. | Custom base URL |

## Commands

```
/help      - Show help
/model     - Change model
/files     - List added files
/add       - Add file to context
/drop      - Remove file from context
/undo      - Undo last change
/clear     - Clear conversation
/quit      - Exit
```

## Configuration

Config is stored in `~/.pocketcoder/config.yaml`:

```yaml
provider:
  type: ollama
  base_url: http://localhost:11434
  default_model: qwen2.5-coder:7b

thinking:
  mode: smart
  show_reasoning: true
```

## Development

```bash
git clone https://github.com/Chashchin-Dmitry/pocketcoder.git
cd pocketcoder
pip install -e .
pytest
```

## Support

If you find PocketCoder useful, consider supporting the project:

| Network | Address |
|---------|---------|
| **ETH / USDT (ERC-20)** | `0xdF5e04d590d44603FDAdDb9f311b9dF7E5dE797c` |
| **BTC** | `bc1q3q25vw4jm8v4xe2g6uezq35q2uyn5jt6e00mj9` |
| **USDT (TRC-20)** | `TQj3X5nFQWqPEmRUWNFPjkaRUUFLxmCdok` |
| **SOL** | `5s5uP66VmnLMSApjq8ro639tXvSp59XEwQittzxF64mF` |

## License

MIT
