Praxis

Self-hosted AI agent harness

Your data, your keys, your rules.

bash
$ git clone https://github.com/wasser-boo/praxis.git && cd praxis
$ cargo build --release
$ ./target/release/praxis run
✓ Gateway running on :3537
✓ Dashboard at http://localhost:3537

Features

🧠

Multi-Provider LLM

OpenAI, Anthropic, Codex, Ollama, llama.cpp, OpenRouter, and more. Switch providers without changing your workflow.

💬

Discord + Voice

Full Discord bot with voice channels, threads, and TTS. Chat naturally or use slash commands.

🖥️

QEMU VM Control

LLM-controlled virtual machines. Keyboard, mouse, screenshots — full automation of desktop environments.

🔧

Tool Calling

Shell execution, file operations, context management, web search. Extend with custom tools via plugins.

🧩

Plugin System

Install custom tools via plugin.json. Community-driven extensibility without touching core code.

🔐

Encrypted Secrets

AES-256-GCM encrypted at rest. Your API keys never leave your server in plaintext.

Why a harness?

A chatbot answers questions. A harness gives an AI agent tools, context, and execution control — turning a language model into a capable operator that can read, write, run commands, and interact with your systems.

Tools

Shell, file I/O, web search, VM control — anything you can script.

Context

State machines, memory profiles, templates. The agent knows what it needs to know.

Control

Budgets, turn limits, tool gating. You decide how far the agent can go.

Get started in 3 commands

1

Clone

git clone https://github.com/wasser-boo/praxis.git
2

Build

cargo build --release
3

Run

./target/release/praxis run

Requires Rust 1.75+ and SQLite3. For QEMU VM support: apt install qemu-system-x86