Skip to main content

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.

CI PyPI version Python 3.11+ License: MIT

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

  1. Configure environment:
cp .env.example .env
# Edit .env with your API keys:
# ANTHROPIC_API_KEY=sk-ant-...
# MOTHER_API_KEY=your-secret-key
  1. Start the server:
mother serve
# Or with options:
mother serve --host 0.0.0.0 --port 8080
  1. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mother_ai_os-0.1.0.tar.gz (88.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mother_ai_os-0.1.0-py3-none-any.whl (108.5 kB view details)

Uploaded Python 3

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

Hashes for mother_ai_os-0.1.0.tar.gz
Algorithm Hash digest
SHA256 30c93d229d8063526a7e86a3b3e1b747e86621ff97f1008099aa40d2a2e7685a
MD5 a5dc5ffaaae1f2c3f5b89766b8ba2cc7
BLAKE2b-256 ed9e0de45d350d53d6ac051d91083c70db4e3b91c54349c2b26b5ffb0620cb4d

See more details on using hashes here.

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

Hashes for mother_ai_os-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c72d13219cc047a44a1af32a6fd955e6f7f9848eca5e90db68cb961f3048be3
MD5 53d1c2599d15bdd16481b8a90b756c40
BLAKE2b-256 c55d395c7416ddfa4706f99d421c11c75c45192210f08388a088aa8acf6d2336

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page