This guide will help you set up and start using OctaAI.
- Go 1.21 or later
- Ollama (for local LLM) or API keys for OpenAI/Claude
- Git
- Linux/macOS (Windows via WSL)
git clone https://github.com/mparvin/octaai.git
cd octaai
make buildThis creates two binaries in ./bin/:
octa-agentd- The agent daemonocta-agent- The CLI client
make installThis installs the binaries to your $GOPATH/bin.
./bin/octa-agent initThis creates ~/.config/octaai/config.yaml with default settings.
- Install Ollama: https://ollama.ai/download
- Pull a model:
ollama pull qwen2.5:32b
- Your config is already set for Ollama by default!
Edit ~/.config/octaai/config.yaml:
llm:
provider: "openai"
model: "gpt-4"
api_key: "sk-..." # Or set OPENAI_API_KEY env varEdit ~/.config/octaai/config.yaml:
llm:
provider: "claude"
model: "claude-3-sonnet-20240229"
api_key: "sk-ant-..." # Or set ANTHROPIC_API_KEY env varEdit the projects_root in your config to where you want projects created:
projects_root: "/home/yourusername/Projects"In one terminal:
./bin/octa-agentdYou should see:
OctaAI Agent Daemon - Starting...
Using LLM: ollama (qwen2.5:32b)
Registered 5 tools
Agent daemon is running. Waiting for goals...
Leave this running.
In another terminal:
./bin/octa-agent goal "Create a simple Python calculator CLI tool with add, subtract, multiply, and divide functions"You should see:
✓ Goal created: goal_1234567890
Description: Create a simple Python calculator CLI tool...
Check status:
./bin/octa-agent statusView detailed logs:
./bin/octa-agent logs goal_1234567890Once completed, the project will be in your projects_root directory:
ls ~/Projects/Let's create a weather application:
./bin/octa-agent goal "Create a Python Flask application that shows weather for major cities using OpenWeatherMap API. Include a simple HTML frontend. Name it WeatherDash"The agent will:
- Create project structure
- Generate Flask application code
- Create HTML templates
- Write a README with setup instructions
- Create tests
- Verify everything works
When complete, navigate to the project:
cd ~/Projects/WeatherDash
cat README.mdFollow the instructions in the generated README to run your new application!
Deploy an application to a remote server:
./bin/octa-agent goal "IP: 192.168.1.100, Username: deploy, Password: secret123. Install nginx, deploy my-app from ~/Projects/my-app, configure reverse proxy on port 80"Submit multiple goals - they'll be processed in order:
./bin/octa-agent goal "Create backend API with FastAPI and PostgreSQL"
./bin/octa-agent goal "Create React frontend that consumes the API"
./bin/octa-agent goal "Write integration tests"- Check Ollama:
curl http://localhost:11434/api/version - Check config:
cat ~/.config/octaai/config.yaml - Check storage dir: Ensure
~/.config/octaai/is writable
- Ensure
octa-agentdis running - Check daemon output for errors
- Verify LLM connection
- Check
safety.allow_pathsin config - Ensure your projects_root exists:
mkdir -p ~/Projects
For Ollama:
# Check if Ollama is running
ollama list
# Start Ollama if needed
ollama serveFor OpenAI/Claude:
- Verify API key is correct
- Check internet connection
- Check API quota/billing
make live-test builds the binaries, starts an isolated daemon (temp HOME), submits a simple filesystem goal via the CLI, polls status/logs until completion, and asserts that LIVE_OK.txt was written with the expected content.
Prerequisites:
- Ollama running and reachable (
ollama serve; defaulthttp://127.0.0.1:11434) - At least one local chat model in Ollama (auto-picks
qwen2.5:32b,qwen3:8b, … or setLIVE_TEST_MODEL) sqlite3andcurlonPATH
make live-test
# Optional overrides
LIVE_TEST_MODEL=qwen3:8b LIVE_TEST_TIMEOUT_SEC=900 LIVE_TEST_KEEP=1 make live-testThis is a local smoke test (LLM-dependent); it is not part of the default CI suite.
By default the daemon listens on 127.0.0.1:8766:
curl -s http://127.0.0.1:8766/healthz
curl -s http://127.0.0.1:8766/readyzOverride with --health-addr, or disable with --health-addr="".
In ~/.config/octaai/config.yaml:
features:
use_htn_planner: false # HTN planner + v1 fallback
use_dag_executor: false # DAG ready-task scheduler
use_capabilities: false # capability registryLeave unimplemented flags (enable_ag2, use_vector_memory, enable_mcp, …) false.
docker build -t octaai .
docker run --rm -v "$HOME/.config/octaai:/home/octa/.config/octaai" \
-p 8766:8766 octaai --health-addr 0.0.0.0:8766No Kubernetes/Helm/Terraform is provided; the project is local-first.
- Read the Examples for more use cases
- See ARCHITECTURE.md for architecture details
- See IMPLEMENTATION_PLAN.md for the delivery roadmap
- Check the Makefile for development commands
- Check logs:
./bin/octa-agent logs <goal-id> - Review configuration:
cat ~/.config/octaai/config.yaml - Submit issues: https://github.com/mparvin/octaai/issues
- The agent runs with your user permissions
safety.deny_commandsprevents dangerous operationssafety.allow_pathsrestricts file operations- Review generated code before deploying to production
- Use SSH with caution - credentials are stored in goals
Enjoy autonomous software development! 🚀