# Boring Pack Format Specification (.boring-pack)
> **Version**: 1.0.0
> **Status**: Draft
> **Date**: 2026-01-18
Boring Pack is the standard distribution format for the Boring-Gemini ecosystem. It is not just Python code, but a "Cognitive Container" that includes tools, workflows, prompts, and knowledge.
## π¦ What is a Boring Pack?
A Boring Pack is a standardized directory structure (usually compressed as ZIP) containing:
1. **Tools**: Python implementations of extensions.
2. **Workflows**: Standard Operating Procedures (.md) defining agent behavior.
3. **Prompts**: Expert-level prompt templates.
4. **Knowledge (Brain)**: Pre-indexed domain knowledge.
## π Directory Structure
```text
my-awesome-pack/
βββ boring-pack.json # Manifest (Required)
βββ README.md # Documentation
βββ LICENSE # License file
βββ requirements.txt # Python dependencies
βββ tools/ # Python Plugin Code
β βββ __init__.py
β βββ my_tool.py
βββ workflows/ # Agent Workflows
β βββ deploy_flow.md
βββ prompts/ # Prompt Templates
β βββ system_prompt.md
βββ brain/ # Knowledge Base (Optional)
β βββ knowledge.parquet
βββ assets/ # Images/Icons
βββ icon.png
```
## π Manifest Schema (boring-pack.json)
```json
{
"spec_version": "1.0",
"id": "boring/full-stack-pack",
"version": "1.0.0",
"name": "Full Stack Developer Pack",
"description": "A complete suite for Full Stack development.",
"author": "Boring Team",
"license": "Apache-2.0",
"homepage": "https://github.com/boring/pack",
"min_boring_version": "15.0.0",
"components": {
"tools": ["tools/"],
"workflows": ["workflows/"],
"prompts": ["prompts/"],
"brain": ["brain/"]
},
"permissions": [
"filesystem:read",
"network:http"
]
}
```
## π οΈ Component Details
### Tools
Standard Boring Plugin syntax using the `@plugin` decorator. The Pack Loader automatically loads all modules under the `tools/` directory.
### Workflows
Markdown format workflow definitions. Once installed, users can execute them via `boring flow run <workflow_name>`.
### Prompts
Text or Markdown format. Once installed, Agents can reference them in conversation, e.g., `@prompt:system_prompt`.
### Brain
Pre-computed vector data. Upon installation, users will be asked whether to merge this into their Global Brain.
## π Packaging & Distribution
### Packing
Use the `boring pack` command to bundle a directory into a `.boring-pack` (ZIP format).
```bash
boring pack . --output my-pack.boring-pack
```
### Installing
Use the `boring install` command:
```bash
# From GitHub (Source)
boring install https://github.com/user/my-pack
# From Local File (Pack)
boring install ./my-pack.boring-pack
```
### Security
When installing a Pack, the system displays the requested permissions (`permissions` field) and asks for user confirmation.
In Strict Mode, unsigned Packs requesting dangerous permissions may be rejected.