An open-source agentic runtime to run, build, and share AI Packs.
-
Simple & Powerful, 1 Agent = 1 multi-stage Markdown file with built-in concurrency, Map-Reduce, and all APIs on a single aip-doc page.
-
Light & Lean, No bloat, < 20MB, single executable, ZERO dependencies.
-
Efficient, Engine written in Rust with a lightweight and efficient embedded Lua script. All
aipfunctions are implemented in Rust. -
Multi-AI, Supports all major AI providers and models (OpenAI, Google, Anthropic, xAI, Ollama, Groq, Fireworks.ai, ...) at the native layer for the major ones. For example, it can use Gemini models with zero thinking budget.
-
Local or Cloud, Runs locally, is completely IDE-agnostic, or runs in the cloud, on a server or serverless.
BIG UPDATE 0.8.x WITH NEW TUI
-
https://aipack.ai for more information and links, AIPack News & Blog Posts
-
AIPack Lab Repo for some cool examples.
- Video: AIPack Concept Video
- Video: Build Agent Getting Started Video Tutorial
- Video: Production Coding With pro@coder AI PACK
- Video: Example generate doc from code
- Video: pro@coder with pro@rust10x Rust best practices
- Video: AIPack Playlist
Mac, Linux, and Windows on ARM and x86 platforms are supported. See below for binary installation instructions.
(More info at aipack.ai/doc/install)
# Mac ARM / Apple Silicon
curl -O https://repo.aipack.ai/aip-dist/stable/latest/aarch64-apple-darwin/aip.tar.gz && \
tar -xvf aip.tar.gz && \
./aip self setup
# Mac x86
curl -O https://repo.aipack.ai/aip-dist/stable/latest/x86_64-apple-darwin/aip.tar.gz && \
tar -xvf aip.tar.gz && \
./aip self setup # Linux x86
curl -O https://repo.aipack.ai/aip-dist/stable/latest/x86_64-unknown-linux-gnu/aip.tar.gz && \
tar -xvf aip.tar.gz && \
./aip self setup
# Linux ARM
curl -O https://repo.aipack.ai/aip-dist/stable/latest/aarch64-unknown-linux-gnu/aip.tar.gz && \
tar -xvf aip.tar.gz && \
./aip self setup# Windows x86
Invoke-WebRequest -Uri "https://repo.aipack.ai/aip-dist/stable/latest/x86_64-pc-windows-msvc/aip.tar.gz" -OutFile "aip.tar.gz"
tar -xvf aip.tar.gz
.\aip.exe self setup
# Windows ARM
Invoke-WebRequest -Uri "https://repo.aipack.ai/aip-dist/stable/latest/aarch64-pc-windows-msvc/aip.tar.gz" -OutFile "aip.tar.gz"
tar -xvf aip.tar.gz
.\aip.exe self setupFor now, installation requires building directly from source with Rust. It works on all major OSes.
- Install Rust: https://www.rust-lang.org/tools/install
- For now, install with
cargo install aipack
# In the terminal, navigate to your project
cd /path/to/my/project/
# Initialize workspace .aipack/ and ~/.aipack-base
aip init
# Make sure to export the desired API key (no spaces around `=`; Unix convention)
export OPENAI_API_KEY="sk...."
export ANTHROPIC_API_KEY="...."
export GEMINI_API_KEY="..."
# For more keys, see below
# Check the keys you've set up
aip check-keys
# To proofread your README.md (namespace: demo, pack_name: proof):
aip run demo@proof -f ./README.md
# You can just use @pack_name if there is no other pack with that name
aip run @proof -f ./README.md
- Stephane Philipakis, a key aipack collaborator.
- Diaa Kasem for
--non-interactive/--ni(Now, inv0.7.x-sor--single-shot) mode (#28)
- You can install
pro@coderwithaip install pro@coder, and then - Run it with
aip run pro@coderoraip run @coderif you don't have any other@coderpack in a different namespace.
This is the agent I use every day for my production coding.
IMPORTANT 1: Make sure everything is committed before use, especially while you are learning AIPack.
IMPORTANT 2: Make sure you have your API_KEY set as an environment variable. On macOS, there is experimental keychain support.
OPENAI_API_KEY
ANTHROPIC_API_KEY
GEMINI_API_KEY
FIREWORKS_API_KEY
TOGETHER_API_KEY
NEBIUS_API_KEY
XAI_API_KEY
DEEPSEEK_API_KEY
GROQ_API_KEY
COHERE_API_KEY
-
Website: https://aipack.ai
-
Built on top of the Rust genai library, which supports many top AI providers and models (OpenAI, Anthropic, Gemini, DeepSeek, Groq, Ollama, xAI, and Cohere).
-
See full CHANGELOG
- One Agent == One Markdown
- An
.aipagent file is just a Markdown file with sections for each stage of the agent's processing. - See below for all the possible stages.
- An
aip run demo@proof -f "./*.md"- will run the installed agent file
main.aipin the - pack named
proof - namespace
demo - agent file
main.aip - Full path
~/.aipack-base/pack/installed/demo/proof/main.aip - You can pass input to your agent using:
-f "path/with/optional/**/glob.*" -f "README.md"(the Lua code will receive a{path = .., name =..}FileInfo-like structure as input)-i "some string" -i "another input"(the Lua code will receive these strings as input)
- Each input triggers one run of the agent.
- will run the installed agent file
aip run some/path/to/agent- If the path ends with
.aip, it's treated as a direct file run. - If there is no
.aipextension, then:.../agent.aipwill be executed if it exists.- or
.../agent/main.aipwill be executed if it exists.
- If the path ends with
- AIPack agents are simple
.aipfiles that can be placed anywhere on disk.- e.g.,
aipack run ./my-path/to/my-agent.aip ...
- e.g.,
- Multi AI Provider / Models - AIPack uses genai and therefore supports providers like OpenAI, Anthropic, Gemini, Groq, Ollama, Cohere, and more.
- Lua is used for all scripting (thanks to the great mlua crate).
- Handlebars is used for all prompt templating (thanks to the great Rust native handlebars crate).
A single AIPack file may comprise any of the following stages.
| Stage | Language | Description |
|---|---|---|
# Before All |
Lua | Reshape/generate inputs and add global data to the command scope (the "map" part of map/reduce). |
# Data |
Lua | Gather additional data per input and return it for the next stages. |
# System |
Handlebars | Customize the system prompt using data from # Before All and # Data. |
# Instruction |
Handlebars | Customize the instruction prompt using data from # Before All and # Data. |
# Assistant |
Handlebars | Optional for special customizations, such as the "Jedi Mind Trick." |
# Output |
Lua | Processes the ai_response from the LLM. If not defined, ai_response.content is output to the terminal. |
# After All |
Lua | Called with inputs and outputs for post-processing after all input processing is complete (the "reduce" part of map/reduce). |
# Before Alland# After Allact like the map and reduce steps, running before and after the main input processing loop, respectively.
See the AIPack documentation at core/doc/README.md (with the Lua modules doc).
You can also run the ask-aipack agent.
# IMPORTANT: Make sure you have the `OPENAI_API_KEY` (or the key for your desired model) set in your environment.
aip run core@ask-aipack
# The prompt file will be at `.aipack/.prompt/core@ask-aipack/ask-prompt.md`