Mother - AI Agent OS with extensible plugin system for orchestrating CLI tools via natural language
Project description
Mother AI OS
An extensible AI agent operating system that orchestrates CLI tools via natural language.
Features
- Natural Language Interface - Talk to your tools in plain English
- Plugin Architecture - Extensible system with PyPI-installable plugins
- Multiple Backends - Python, CLI, Docker, and HTTP execution
- Built-in Plugins - Filesystem, shell, and web operations out of the box
- Security Model - Permission-based capability system
- FastAPI Server - RESTful API with streaming support
Installation
pip install mother-ai-os
Or install from source:
git clone https://github.com/Mother-AI-OS/mother.git
cd mother
pip install -e .
Quick Start
- Configure environment:
cp .env.example .env
# Edit .env with your API keys:
# ANTHROPIC_API_KEY=sk-ant-...
# MOTHER_API_KEY=your-secret-key
- Start the server:
mother serve
# Or with options:
mother serve --host 0.0.0.0 --port 8080
- Send commands:
curl -X POST http://localhost:8080/command \
-H "X-API-Key: your-key" \
-H "Content-Type: application/json" \
-d '{"command": "List files in my home directory"}'
CLI Commands
# Server
mother serve # Start the server
mother status # Show system status
# Plugin management
mother plugin list # List available plugins
mother plugin info <name> # Show plugin details
mother plugin install <pkg> # Install from PyPI
mother plugin uninstall <pkg> # Remove a plugin
mother plugin search [query] # Search PyPI for plugins
Built-in Plugins
| Plugin | Capabilities |
|---|---|
| filesystem | read_file, write_file, list_directory, file_info, search_files |
| shell | run_command |
| web | fetch_url |
Creating Plugins
Plugins are Python packages that register via entry points. Create a mother-plugin.yaml manifest:
schema_version: "1.0"
plugin:
name: my-plugin
version: 1.0.0
description: My custom plugin
author: Your Name
capabilities:
- name: do_something
description: Does something useful
parameters:
- name: input
type: string
required: true
execution:
type: python
python:
module: my_plugin
class: MyPlugin
Then implement the plugin:
from mother.plugins import PluginBase, PluginResult
class MyPlugin(PluginBase):
async def execute(self, capability: str, params: dict) -> PluginResult:
if capability == "do_something":
result = self._do_something(params["input"])
return PluginResult.success_result(data={"result": result})
raise ValueError(f"Unknown capability: {capability}")
Register in pyproject.toml:
[project.entry-points."mother.plugins"]
my-plugin = "my_plugin:MyPlugin"
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/command |
POST | Execute a natural language command |
/tools |
GET | List available tools |
/health |
GET | Health check |
/stream |
POST | Stream command execution |
Configuration
Environment variables:
| Variable | Description | Default |
|---|---|---|
ANTHROPIC_API_KEY |
Anthropic API key | Required |
MOTHER_API_KEY |
API authentication key | Required |
CLAUDE_MODEL |
Claude model to use | claude-sonnet-4-20250514 |
API_HOST |
Server host | 127.0.0.1 |
API_PORT |
Server port | 8080 |
OPENAI_API_KEY |
OpenAI key (for memory) | Optional |
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Type checking
mypy mother
# Linting
ruff check mother
License
MIT License - see LICENSE for details.
Author
David Sanker (@lawkraft)
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 mother_ai_os-0.1.0.tar.gz.
File metadata
- Download URL: mother_ai_os-0.1.0.tar.gz
- Upload date:
- Size: 88.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30c93d229d8063526a7e86a3b3e1b747e86621ff97f1008099aa40d2a2e7685a
|
|
| MD5 |
a5dc5ffaaae1f2c3f5b89766b8ba2cc7
|
|
| BLAKE2b-256 |
ed9e0de45d350d53d6ac051d91083c70db4e3b91c54349c2b26b5ffb0620cb4d
|
File details
Details for the file mother_ai_os-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mother_ai_os-0.1.0-py3-none-any.whl
- Upload date:
- Size: 108.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c72d13219cc047a44a1af32a6fd955e6f7f9848eca5e90db68cb961f3048be3
|
|
| MD5 |
53d1c2599d15bdd16481b8a90b756c40
|
|
| BLAKE2b-256 |
c55d395c7416ddfa4706f99d421c11c75c45192210f08388a088aa8acf6d2336
|