Skip to main content

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.toml support 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

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:

On Linux and macOS:

~/.config/picobot/config.toml

On Windows:

C:\Users\<YourName>\.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

Notes:

  • ".venv" ignores both a file named .venv and a directory named .venv/
  • ".venv/" ignores only the directory .venv/

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 simple gitignore-like 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

picobot-0.3.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

picobot-0.3.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file picobot-0.3.1.tar.gz.

File metadata

  • Download URL: picobot-0.3.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for picobot-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f5b4667012e8b77cf28d0ee0babc24307a4ef55ba6a9c1c16d14b54eded66ee0
MD5 df2eaea110d5976048b8dbf8bd899a8f
BLAKE2b-256 64397fcb195ecc9498cf37b33acfbb8a316c4f611a90567605cb1b9a6a4ad144

See more details on using hashes here.

File details

Details for the file picobot-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: picobot-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for picobot-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9cb58361641157dd6061aa202a709abdd068bcfd2524b5ace00275dab4a2d220
MD5 6eee5667167180f9cac847dd058b963f
BLAKE2b-256 97ef6525fe83c773bdf90c1d7e9ca49aa9d08a2db099ae559a826a1ed6a6dd8b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page