Skip to content

CLI

AIMU's CLI surface is a handful of python -m entry points: the bundled FastMCP tool/memory/prompt servers, plus an A2A agent server.

Tools server

python -m aimu.tools.mcp

Runs a FastMCP server that registers every function in aimu.tools.builtin.ALL_TOOLS (weather, search, calculate, get_webpage, wikipedia, list_directory, read_file, echo, get_current_date_and_time).

Connect from another process:

from aimu.tools import MCPClient
mcp = MCPClient({"mcpServers": {"aimu": {"command": "python", "args": ["-m", "aimu.tools.mcp"]}}})

A2A agent server

Requires the a2a extra (pip install 'aimu[a2a]'). Exposes a single AIMU Agent over the Agent2Agent protocol: the agent-level analog of the tools server above (which serves tools; this serves a whole agent).

python -m aimu.agents.a2a \
    --model anthropic:claude-sonnet-4-6 \
    --system "You are a helpful research assistant." \
    --port 9000

Flags: --model (defaults to AIMU_LANGUAGE_MODEL / a locally available model), --system, --name, --host (default 127.0.0.1), --port (default 9000).

Connect from another process:

from aimu.agents import RemoteAgent
remote = RemoteAgent.connect("http://localhost:9000")
print(remote.run("Summarise the latest on small language models."))

To serve an arbitrary Runner (a workflow, a custom agent) rather than a plain Agent, call aimu.agents.serve_a2a(runner, port=9000) from your own script instead of this CLI.

Semantic memory server

MEMORY_STORE_PATH=./.aimu/memory python -m aimu.memory.mcp

Wraps SemanticMemoryStore. Tools registered:

  • search_memories(search_request)
  • add_memories(memories)
  • delete_memory(memory)
  • list_memories()

Reads MEMORY_STORE_PATH (default: in-memory).

Document memory server

DOCUMENT_STORE_PATH=./.aimu/docs python -m aimu.memory.document_mcp

Wraps DocumentStore with tools matching Anthropic's Managed Agents Memory API:

  • memory_list(path_prefix)
  • memory_search(query)
  • memory_read(path)
  • memory_write(path, content)
  • memory_edit(path, old_str, new_str)
  • memory_delete(path)

Reads DOCUMENT_STORE_PATH (default: in-memory).

Prompt catalog server

PROMPT_CATALOG_PATH=./.aimu/prompts.db python -m aimu.prompts.mcp

Wraps PromptCatalog. Tools registered:

  • get_prompt(name, model_id)
  • list_prompts()
  • store_prompt_version(name, model_id, prompt, metrics)

Reads PROMPT_CATALOG_PATH (default: prompts.db in cwd).

Web chat apps

Not strictly CLI but launched the same way:

streamlit run web/streamlit_chatbot.py     # Streamlit UI
python web/gradio_chatbot_basic.py               # Gradio UI

Both demo a full-featured chat with streaming, tool calls, and persistent history.

See also