IMPORTANT NOTICE - from v0.6.0 onward - AIPACK (rename from devai)
-
This project is rebranding to aipack, a more suitable name for its future development.
-
This repo is now
https://github.com/aipack-ai/aipack. -
same codebase, same feature set, same licenses (MIT or Apache)
-
But now
aipackcentric, which is going to bring huge value for the users and community.
You can find more information in the following discussion #51
aipack - Build, Run, Share
DISCLAIMER: Right now, it works on Linux & Mac. Use WSL on Windows (for now).
- The cool thing is the
aip ..can run on WSL, and then use VSCode on the same project, and all is good.
For now, install with cargo install aipack
Quick Start
# In terminal go to your projct
# initialize workspace .aipack/ and ~/.aipack-base
# Make sure to export the desired API key
# For more keys, see below
# To proof read your README.md (namespace: demo, pack_name: proof)
# You can just use @pack_name if there is no other packname of this name
# To do some code crafting (will create _craft-code.md)
# Or create your .aip file (you can omit the .aip)
# And then the big jc@coder
IMPORTANT 1: Make sure everything is committed before usage (at least while you are learning about aipack).
IMPORTANT 2: Make sure to have your API_KEY in an environment variable (on Mac, there is an experimental keychain support)
OPENAI_API_KEY
ANTHROPIC_API_KEY
GEMINI_API_KEY
XAI_API_KEY
DEEPSEEK_API_KEY
GROQ_API_KEY
COHERE_API_KEY
Info
-
Website: https://aipack.ai
-
Full intro video for v0.5 (still old devai name, but same concept)
-
Built on top of the Rust genai library, which supports all the top AI providers and models (OpenAI, Anthropic, Gemini, DeepSeek, Groq, Ollama, xAI, and Cohere).
-
Top new features:
- 2025-02-26 (v0.6.0) - BIG UPDATE - to AIPACK, now with pack support (
aip run demo@craft/code) - 2025-02-22 (v0.5.11) - Huge update with parametric agents, and coder (more info soon)
- 2025-01-27 (v0.5.9) - Deepseek distill models support for Groq and Ollama (local)
- 2025-01-23 (v0.5.7) -
aipack run craft/textoraipack run craft/code(example of cool new agent module support) - 2025-01-06 (v0.5.4) - DeepSeek
deepseek-chatsupport - 2024-12-08 (v0.5.1) - Added support for xAI
- 2025-02-26 (v0.6.0) - BIG UPDATE - to AIPACK, now with pack support (
-
WINDOWS DISCLAIMER:
- This CLI uses a path scheme from Mac/Unix-like systems, which might not function correctly in the Windows
batcommand line. - Full Windows local path support is in development.
- RECOMMENDATION: Use PowerShell or WSL on Windows. Please log issues if small changes can accommodate Windows PowerShell/WSL.
- This CLI uses a path scheme from Mac/Unix-like systems, which might not function correctly in the Windows
-
Thanks to
- Stephane Philipakis, a top aipack collaborator.
- David Horner for adding Windows support for Open Agent (with VSCode) (#30)
- Diaa Kasem for
--non-interactive/--nimode (#28)
Install
For now, the simplest way to install is with cargo install aipack.
- Install Rust: https://www.rust-lang.org/tools/install
- Run
cargo install aipack
How it works
- One Agent == One Markdown
- A
.aipAgent file is just a Markdown File with sections for each stage of the agent processing. - See below for all the possible stages.
- A
aip run demo@proof -f "./*.md"- will run the installed Agent file
main.aipin the - pack name
proof - namespace
demo - agent file
main.aip - Full path
~/.aipack-base/pack/installed/demo/proof/main.aip - You can pass input to your agent with
-f "path/with/optional/**/glob.*" -f "README.md(then the lua code will get a{path = .., name =..}FileMeta type of structure as input)-i "some string" -i "another input"(then the lua code will get those strings as input)- Each input will be one run of the agent.
- will run the installed Agent file
aip run some/path/to/agent- can end with
.aipin this case direct file run - if no
.aipextension, then,...agent.aipwill be executed if exists- or
...agent/main.aipwill be executed if exists
- can end with
- aipack agents are simple
.aipfiles that can be placed anywhere on disk.- e.g.,
aipack run ./my-path/to/my-agent.aipack ...
- e.g.,
- Multi AI Provider / Models - aipack uses genai and therefore supports OpenAI, Anthropic, Gemini, Groq, Ollama, Cohere, and more to come.
- 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).
Multi Stage
A single aipack file may comprise any of the following stages.
| Stage | Language | Description |
|---|---|---|
# Before All |
Lua | Reshape/generate inputs and add command global data to scope (the "map" of the map/reduce capability). |
# Data |
Lua | Gather additional data per input and return it for the next stages. |
# System |
Handlebars | Customize the prompt with the data and before_all data. |
# Instruction |
Handlebars | Customize the prompt with the data and before_all data. |
# Assistant |
Handlebars | Optional for special customizations, such as the "Jedi Mind Trick." |
# Output |
Lua | Processes the ai_response from the LLM. Otherwise, ai_response.content will be output to the terminal. |
# After All |
Lua | Called with inputs and outputs for post-processing after all inputs are completed. |
# Before All/# After Allcan be considered as the map/reduce of the agent, and these will be run before and after the input processing.
aipack doc
See the aipack documentation at _init/doc/README.md (With Lua modules doc)
You can also run the ask-aipack agent.
# IMPORTANT - Make sure you have the `OPENAI_API_KEY` or the key of your model in your environment
# and then open the `.aipack/tmp/ask-aipack.md`
Future Plans
- More Lua functions
- Agent module
my-modulemay runmy-module/main.aip, and runningmy-module/some-otherwill runmy-module/some-other.aip - Support Lua
Require - Full TUI/Ratatui
- Split runtime to agentic