A tiny bot built for simplicity
Project description
Pico Bot
A lightweight terminal-based AI assistant for simple, interactive chat.
Features
- Terminal-based chat interface for quick, interactive use
- OpenAI integration powered by LangChain
- Conversation memory to preserve context during a session
- Safe local file access limited to the project root
- Recursive directory listing support
config.tomlsupport for customizing directory listing defaults- Git-like ignore patterns to reduce noise, token usage, and accidental exposure of unneeded files
- Accurate cost tracking with cached input token support, down to 6 decimal places
Screenshot
Installation
Requirements
- Python 3.12 (tested)
- An OpenAI API key
For Users
Install Pico Bot from PyPI:
pip install picobot
For Development
Clone the repository and install in editable mode:
git clone git@github.com:ngpeijiun/picobot.git
cd picobot
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
Configuration
Set your OpenAI API key in your environment:
export OPENAI_API_KEY="your_api_key"
On Windows PowerShell:
$env:OPENAI_API_KEY="your_api_key"
config.toml
You can place a config.toml file in your Pico Bot user config directory. Pico Bot reads it from:
~/.config/picobot/config.toml
Pico Bot uses this file to configure list_dir defaults.
Example:
[list_dir]
ignore = [".git", ".venv", "__pycache__", "dist"]
max_depth = 4
max_entries = 500
Backward Compatibility
See Backward Compatibility for legacy config support. This backward compatibility will be dropped in the official 1.0 release.
Usage
picobot
Type exit or quit to leave the session.
Safety
The read_file and list_dir tools only allow access to files inside the project root directory. This helps prevent path traversal outside the repository.
The list_dir tool supports ignore patterns to reduce noise, token usage, and accidental exposure of unneeded files. This is intended for convenience only; it is not a security boundary and should not be relied on to protect secrets.
Roadmap
- Add more tools
- Add tests
- Improve configuration and error handling
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file picobot-0.3.tar.gz.
File metadata
- Download URL: picobot-0.3.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db10b05c86e6e179caccaaf5966c8a2b05e6cb135bb0f5b5ef53d4f3d803d965
|
|
| MD5 |
b8c1312a46327e353a8041b2af773118
|
|
| BLAKE2b-256 |
38efc39704a77d35813db2591c5c56f5c4f20bbc09bf2674b7d40a2e1ad731ba
|
File details
Details for the file picobot-0.3-py3-none-any.whl.
File metadata
- Download URL: picobot-0.3-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efd7d1819df0fe298a2749ea6a505940dea7daddd7ce0c5fc95943c03291d341
|
|
| MD5 |
7435a368c88aae7e9d49b8ee7867e7b2
|
|
| BLAKE2b-256 |
c232efdd1b227fc403d281b96fc4b50aa3337ecc1574299f754fd484e37fb705
|