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:

~/.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

picobot-0.3.tar.gz (10.2 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-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

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

Hashes for picobot-0.3.tar.gz
Algorithm Hash digest
SHA256 db10b05c86e6e179caccaaf5966c8a2b05e6cb135bb0f5b5ef53d4f3d803d965
MD5 b8c1312a46327e353a8041b2af773118
BLAKE2b-256 38efc39704a77d35813db2591c5c56f5c4f20bbc09bf2674b7d40a2e1ad731ba

See more details on using hashes here.

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

Hashes for picobot-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 efd7d1819df0fe298a2749ea6a505940dea7daddd7ce0c5fc95943c03291d341
MD5 7435a368c88aae7e9d49b8ee7867e7b2
BLAKE2b-256 c232efdd1b227fc403d281b96fc4b50aa3337ecc1574299f754fd484e37fb705

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