Dynamic skill-based LangGraph agent
Project description
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.
Security notice: Birdie has no guardrails against local tool misuse. Skills such as
ShellandFilesystemcan 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.
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
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
All skills are disabled by default. Enable them for the current session:
/skill enable Shell
/skill enable DuckDuckGo
| 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) |
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.
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 |
/remember <text> |
Save a note to long-term memory |
/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/architecture.md | Project layout, agent loop, system prompt, providers, memory and sessions |
Running tests
pip install -e ".[dev,mcp]"
pytest
Project details
Release history Release notifications | RSS feed
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 birdie_agent-0.2.11.tar.gz.
File metadata
- Download URL: birdie_agent-0.2.11.tar.gz
- Upload date:
- Size: 76.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a226058ea027373acefe530b1bc86667bc202f81dec73fd235023eaa5b1623a
|
|
| MD5 |
1eb8f399046a1c9e06b4df0846195842
|
|
| BLAKE2b-256 |
0a78a060fd9556f68ff1b818f7ab65a541fe36928adf4faaccbe00b5e0fd8c00
|
Provenance
The following attestation bundles were made for birdie_agent-0.2.11.tar.gz:
Publisher:
publish.yml on gkvas/birdie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
birdie_agent-0.2.11.tar.gz -
Subject digest:
2a226058ea027373acefe530b1bc86667bc202f81dec73fd235023eaa5b1623a - Sigstore transparency entry: 1484888060
- Sigstore integration time:
-
Permalink:
gkvas/birdie@a00afa6bdb0663b74d3abcc63fb38db031c230c5 -
Branch / Tag:
refs/tags/v0.2.11 - Owner: https://github.com/gkvas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a00afa6bdb0663b74d3abcc63fb38db031c230c5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file birdie_agent-0.2.11-py3-none-any.whl.
File metadata
- Download URL: birdie_agent-0.2.11-py3-none-any.whl
- Upload date:
- Size: 70.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb8e8477afbda1ce6ebb918211f6287e632469b7898f60aa2af341084115b803
|
|
| MD5 |
3173853fb28d6f0d9dd84f8dc86e2386
|
|
| BLAKE2b-256 |
8d9dcc7270c3a2ef843fee4a64d5fe4758f3139b162fdd668abebdf43a5c7b98
|
Provenance
The following attestation bundles were made for birdie_agent-0.2.11-py3-none-any.whl:
Publisher:
publish.yml on gkvas/birdie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
birdie_agent-0.2.11-py3-none-any.whl -
Subject digest:
cb8e8477afbda1ce6ebb918211f6287e632469b7898f60aa2af341084115b803 - Sigstore transparency entry: 1484888100
- Sigstore integration time:
-
Permalink:
gkvas/birdie@a00afa6bdb0663b74d3abcc63fb38db031c230c5 -
Branch / Tag:
refs/tags/v0.2.11 - Owner: https://github.com/gkvas
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a00afa6bdb0663b74d3abcc63fb38db031c230c5 -
Trigger Event:
push
-
Statement type: