CLI & SDKs
Two ways to interact with MUXI
MUXI provides two main interfaces: the CLI for managing your server and formations, and SDKs for building applications that talk to your agents.
CLI
For: Managing MUXI
- Deploy and manage formations
- Configure secrets
- Monitor logs and health
- Server administration
muxi deploy
muxi secrets setup
muxi logs my-assistant
SDKs
For: Building applications
- Chat with your agents
- Stream responses
- Manage sessions and memory
- Integrate into your apps
client = FormationClient(url="...")
for event in client.chat_stream({"message": "Hi"}):
print(event.get("text"), end="")
Which should I use?
| I want to... | Use |
|---|---|
| Deploy a formation | CLI |
| Set up API keys and secrets | CLI |
| Check formation logs | CLI |
| Start/stop formations | CLI |
| Build a chatbot UI | SDK |
| Integrate agents into my app | SDK |
| Stream responses to users | SDK |
| Manage user sessions | SDK |
Most projects use both: CLI for deployment and ops, SDKs for application code.
CLI Quick Start
Install
brew install muxi-ai/tap/muxi
curl -fsSL https://muxi.org/install | sudo bash
powershell -c "irm https://muxi.org/install | iex"
Essential Commands
# Create a new formation
muxi new formation my-assistant
# Set up secrets (API keys)
muxi secrets setup
# Run locally for development
muxi dev
# Deploy to production server
muxi deploy --profile production
# View logs
muxi logs my-assistant --follow
# List all formations
muxi server list
SDK Quick Start
Install
pip install muxi-client
npm install @muxi-ai/muxi-typescript
go get github.com/muxi-ai/muxi-go
Chat with Your Agent
from muxi import FormationClient
client = FormationClient(url="http://localhost:8001")
for event in client.chat_stream({"message": "Hello!"}):
if event.get("type") == "text":
print(event.get("text"), end="")
import { FormationClient } from "@muxi-ai/muxi-typescript";
const client = new FormationClient({
url: "http://localhost:8001",
});
for await (const event of client.chatStream({ message: "Hello!" })) {
if (event.type === "text") process.stdout.write(event.text);
}
client := muxi.NewFormationClient(&muxi.FormationConfig{
URL: "http://localhost:8001",
})
stream, _ := client.ChatStream(ctx, &muxi.ChatRequest{
Message: "Hello!",
})
for chunk := range stream {
if chunk.Type == "text" {
fmt.Print(chunk.Text)
}
}