Metadata-Version: 2.4
Name: pickle-bot
Version: 1.0.4
Summary: Personal AI assistant with pluggable skills
Project-URL: Homepage, https://github.com/zane-chen/pickle-bot
Project-URL: Repository, https://github.com/zane-chen/pickle-bot
Project-URL: Issues, https://github.com/zane-chen/pickle-bot/issues
Author-email: zane <czl970721@gmail.com>
License: MIT
Keywords: ai,assistant,chatbot,llm
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.13
Requires-Dist: crawl4ai>=0.4.0
Requires-Dist: croniter>=1.0.0
Requires-Dist: discord-py>=2.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: litellm>=1.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-telegram-bot>=20.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: questionary>=2.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: textual>=0.21.0
Requires-Dist: typer>=0.12.0
Requires-Dist: uvicorn[standard]>=0.32.0
Requires-Dist: watchdog>=5.0.0
Provides-Extra: dev
Requires-Dist: bump-my-version>=0.20.0; extra == 'dev'
Requires-Dist: mypy>=1.19.1; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest>=9.0.2; extra == 'dev'
Requires-Dist: ruff>=0.15.1; extra == 'dev'
Requires-Dist: types-croniter; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Description-Content-Type: text/markdown

# Pickle-Bot

Your own AI assistant. Name it. Talk to it. Teach it things. Important fact [Pickle](https://www.instagram.com/pickle__chen/) is a standard little cat.

Pickle-bot is a yet another lightweight version of [Openclaw](https://github.com/openclaw/openclaw).

The project started with the mindset of building-you-own-openclaw, but end up staying on my raspberry PI, dealing with all daily manners.

<img style="width: 100%;" src="PickleBotCover.png">

## Installation

```bash
# From PyPI
pip install pickle-bot

# Or from source
git clone https://github.com/zane-chen/pickle-bot.git
cd pickle-bot
uv sync
```

## Quick Start

```bash
uv run pickle-bot init      # First run: meet your new companion
uv run pickle-bot chat      # Start chatting
uv run pickle-bot server    # Run background tasks (crons, Telegram, Discord)
```

The first run guides you through setup. Pick your LLM, configure your agent, and you're ready.

## Features

- **Multi-Agent AI** - Create specialized agents for different tasks (Pickle for general chat, Cookie for memories, or build your own)
- **Web Tools** - Search the web, read pages, do research
- **Skills** - Teach your agent new tricks by writing markdown files
- **Cron Jobs** - Schedule recurring tasks and reminders
- **Memory System** - Your agent remembers things across conversations
- **Multi-Platform** - CLI, Telegram, Discord - same agent, different places
- **HTTP API** - Let Pickle write a frontend for you

## Documentation

- **[Configuration](docs/configuration.md)** - Full config reference
- **[Features](docs/features.md)** - How to use each feature
- **[Architecture](docs/architecture.md)** - How it works under the hood

## Fun Facts

### Why Naming Agents with These Names?

Pickle is my cat, as mentioned at the beginning. She is really talktive, definitely more than you can think about.

Cookie was her Step brother, but he lives somewhere else now. so he manage memories on behalf of Pickle.

### She's your Cat, Why Matters to Me?

Create your own agents by dropping a file in `agents/{name}/AGENT.md`. Give them a name, a personality. Give them skills.

## Development

```bash
uv run pytest           # Run tests
uv run black .          # Format code
uv run ruff check .     # Lint
```

## Docker

Use `init` command to populate workspace, and mount that as a volume.

```bash
docker compose up -d
```

## License

MIT
