This guide provides instructions for developing, building, and testing Lumo.
- Go: 1.25 or higher
- Docker: For containerized builds and local environment
- Make: For running build commands
-
Clone the repository
git clone https://github.com/IgnacioPro/lumo.git cd lumo -
Install dependencies
go mod download
-
Run local environment Lumo requires PostgreSQL and Redis for full functionality.
docker-compose up -d
Build the CLI and Agent binaries:
make buildBinaries will be placed in the current directory:
lumo: Main CLI and API serverlumo-agent: Agent daemon
Start the API server (requires DB/Redis):
./lumo serveConfiguration can be customized via ~/.lumo/config.yaml or environment variables (see README.md).
Start the agent:
./lumo-agent startRun the standard test suite:
make testThis runs all tests, including:
- Unit tests for core logic
- Integration tests for API endpoints (using in-memory/mock DB where possible)
- Load Tests: Basic load tests are included in the suite (
tests/load)
Load tests are located in tests/load. They verify system stability and performance.
They are integrated into make test but can be run individually:
go test -v ./tests/load/...Note: Load tests require a running database (Postgres). The test harness automatically connects to the local Postgres instance defined in config.yaml (default: localhost:5432, user: lumo, pass: lumo_dev).
Run linting and formatting:
make lint
make fmtcmd/: Entry points for binariesinternal/: Private application codeapi/: HTTP API server and handlersai/: AI provider integrationsdiagnostics/: System diagnostic logicreliability/: Circuit breakers and resilience patternsobservability/: Tracing and metrics
pkg/: Public libraries (if any)tests/: Integration and load tests