Skip to main content

Birdie

      ___                       ___           ___                       ___
    /\  \          ___        /\  \         /\  \          ___        /\  \
   /::\  \        /\  \      /::\  \       /::\  \        /\  \      /::\  \
  /:/\:\  \       \:\  \    /:/\:\  \     /:/\:\  \       \:\  \    /:/\:\  \
 /::\~\:\__\      /::\__\  /::\~\:\  \   /:/  \:\__\      /::\__\  /::\~\:\  \
/:/\:\ \:|__|  __/:/\/__/ /:/\:\ \:\__\ /:/__/ \:|__|  __/:/\/__/ /:/\:\ \:\__\
\:\~\:\/:/  / /\/:/  /    \/_|::\/:/  / \:\  \ /:/  / /\/:/  /    \:\~\:\ \/__/
 \:\ \::/  /  \::/__/        |:|::/  /   \:\  /:/  /  \::/__/      \:\ \:\__\
  \:\/:/  /    \:\__\        |:|\/__/     \:\/:/  /    \:\__\       \:\ \/__/
   \::/__/      \/__/        |:|  |        \::/__/      \/__/        \:\__\
    ~~                        \|__|         ~~                        \/__/

A LangGraph-based agent that discovers capabilities at runtime from SKILL.MD and AGENT.MD files. Skills, tools, and sub-agents are all declared in plain Markdown - no code changes required to add new capabilities.

Birdie is a minimal yet fully functional implementation. The design goal is simplicity and transparency: the codebase is intended to be readable, hackable, and easy to extend. Every major feature - the agent loop, skill loading, session persistence, conversation compaction, long-term memory - is implemented in a small number of well-commented Python files that you can read from top to bottom in an afternoon.

Security notice: Birdie has no guardrails against local tool misuse. Skills such as Shell and Filesystem can read, write, and execute anything the running user is permitted to do. Only enable skills you trust and run Birdie under an account with appropriate restrictions.


Birdie CLI demo

Installation

From PyPI (recommended)

pip install birdie-agent

From source

git clone https://github.com/gkvas/birdie.git
cd birdie
pip install -e .

Optional extras

pip install "birdie-agent[mcp]"   # MCP server support
pip install -e ".[dev,mcp]"       # development + MCP (from source)

Quick start

Configure your LLM provider and run birdie.

Environment variables

# Anthropic
export LLM_VENDOR=anthropic
export LLM_MODEL=claude-sonnet-4-6
export ANTHROPIC_API_KEY=your-key-here
birdie

# OpenAI
export LLM_VENDOR=openai
export LLM_MODEL=gpt-4o
export OPENAI_API_KEY=your-key-here
birdie

# Mistral
export LLM_VENDOR=mistral
export LLM_MODEL=mistral-large-latest
export MISTRAL_API_KEY=your-key-here
birdie

# Azure OpenAI
export LLM_VENDOR=azure
export LLM_MODEL=your-deployment-name
export AZURE_OPENAI_API_KEY=your-key-here
export AZURE_OPENAI_ENDPOINT=your-base-url
birdie

JSON config file

birdie --config ~/.birdie/provider.json
{
  "vendor": "anthropic",
  "model": "claude-sonnet-4-6",
  "api_key": "sk-ant-..."
}

See doc/cli.md for all supported vendors, config fields, and environment variable options.


Built-in skills

Skills extend Birdie and are defined in SKILL.MD files. All skills are disabled by default. Enable them for the current session:

/skill enable Shell
/skill enable DuckDuckGo

Birdie ships with the following default skills:

Skill Description
Shell Run arbitrary shell commands
Filesystem Read and write local files
ssh Connect to remote hosts and run commands
ToDo Step-by-step planning and progress tracking
Weather Weather lookup via external API
DuckDuckGo Web search - no API key required
mcp_demo Demo MCP server (echo and reverse_string)

See doc/skills.md for the full SKILL.MD format and how to write skills.


Sub-agents

Sub-agents are AI agents defined by AGENT.MD files. When enabled, a sub-agent appears to the calling LLM as a regular tool. Invoking it spins up an ephemeral agent, runs it to completion, and returns the result.

All agents are disabled by default. Enable them for the current session:

/agent enable Summarizer

Drop an AGENT.MD in ~/.birdie/agents/<name>/ to add custom sub-agents without reinstalling.

See doc/agents.md for the full AGENT.MD format and how to write custom agents.


Conversation memory

Birdie maintains three separate memory stores that work together to give the agent context across turns and sessions.

Short-term memory is handled automatically by LangGraph's SQLite checkpointer. Every message is stored in ~/.birdie/sessions/<user>/checkpoints.db and loaded at the start of each turn. The full history is sent to the LLM; once it grows past the compaction threshold (80 messages by default, or a configurable token budget), the oldest segment is summarised away in the background so cost stays bounded even in very long sessions.

Manual long-term memory is written by you, explicitly. Use /remember to save any fact you want the agent to recall in future sessions:

/remember I prefer compact, direct answers without preamble
/remember The project uses Python 3.12 and pytest for tests

Notes are stored in ~/.birdie/sessions/<user>/memory.json and injected into the model's context on every turn, across all sessions.

Automatic long-term memory is written by the compaction pipeline. When a session grows beyond 80 messages, Birdie summarises the oldest segment using the LLM in the background, extracts structured facts, preferences, tool outcomes, and open tasks, and stores them in ~/.birdie/ltm/<user>.json. The summary also stays with the session as a rolling continuity bridge, and on future turns the top-5 most semantically relevant entries are retrieved and injected alongside your manual /remember notes.

You can trigger compaction at any time with:

/compact

This is useful at the end of a long working session to capture everything important before starting fresh. The command displays the summary that was generated and how many messages were removed from the checkpoint.

The retrieval uses a lightweight hash-trick embedding (birdie/core/retrieval.py) that requires no model downloads or extra dependencies - just SHA-256 and a dot product.

See doc/architecture.md for a detailed explanation of how all three stores interact, how the compaction algorithm picks the split point, and how the LTM store is queried each turn.


Key commands

Command Description
/skill list List all skills and their status
/skill enable <name> Enable a skill for this session
/agent list List all sub-agents and their status
/agent enable <name> Enable a sub-agent for this session
/agent output short|full|off Control sub-agent transcript verbosity
/tool output short|full|off Control tool result verbosity
/skill reload Re-discover skills from disk
/skill new <name> Scaffold a new SKILL.MD
/remember <text> Save a note to long-term memory
/compact Summarise old messages into long-term memory now
/cost Show token usage and estimated cost
/history [N] Replay the last N messages of this session
/session new Start a new session
/session list List all sessions
/help Show all commands

Documentation

Document Contents
doc/cli.md CLI flags, provider config reference, all slash commands, key bindings
doc/skills.md SKILL.MD format, entrypoints, tool and knowledge skills, skill loading
doc/agents.md AGENT.MD format, sub-agent system, runtime controls, custom agents
doc/mcp.md MCP integration, declaring MCP servers, writing MCP servers
doc/memory.md Short-term and long-term memory stores, compaction, session files
doc/architecture.md Project layout, agent loop, system prompt, providers, conversation compaction, long-term memory store, sessions

Running tests

pip install -e ".[dev,mcp]"
pytest

Metadata

Release files for birdie-agent 0.15.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for birdie-agent 0.15.1
File Size Uploaded
birdie_agent-0.15.1.tar.gz 172.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for birdie-agent 0.15.1
File Interpreter ABI Platform
birdie_agent-0.15.1-py3-none-any.whl Python 3 none any Details

Total release size: 301.4 kB

Release files / birdie_agent-0.15.1.tar.gz

Download URL birdie_agent-0.15.1.tar.gz
Size 172.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1fdbb407aa26ed781ed3408eccf60df7c39bf6adea2652ca0a8b1f620e3a6a75
BLAKE2b-256 checksum
How to use checksums
0365323f48718bd73d00f2557fd0b1fe53b1ac3e2ff0816d3331324b32204c0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Release files / birdie_agent-0.15.1-py3-none-any.whl

Download URL birdie_agent-0.15.1-py3-none-any.whl
Size 128.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f93d7b6ae4498015a2af8dbd11f44bb3ef53ab612dd5b57da86f45a7852101f
BLAKE2b-256 checksum
How to use checksums
42007fc9d160837ef1702c1567fd4fd6ff1dc7669720c9b1475f06927d07481a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.15.1 This release

2 release files

0.15.0

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.3

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page