AI-Native Task Orchestration for Developers
Neona is a lightweight control plane that coordinates AI agents and tools to execute complex, multi-step development tasks. It provides task management, shared policy enforcement, audit trails, and a beautiful terminal interface—all while keeping you in control of what gets executed.
Think of it as a command center for your AI coding assistants, ensuring they work together under consistent rules while maintaining full transparency and security.
Created by Fentzzz
- Task Orchestration - Create, claim, and execute development tasks with lease-based concurrency control
- AI Agent Coordination - Connect multiple AI tools (Cursor, Claude CLI, etc.) under unified policies
- Policy Enforcement - Define shared rules, constraints, and safety checks in
.ai/policy.yaml - Audit Trails - Comprehensive PDR (Process Data Record) logging for compliance and debugging
- Memory System - Contextual knowledge base that persists across tasks and sessions
- Beautiful TUI - Rich terminal interface built with Textual (Python) for interactive task management
- Secure by Default - Command allowlisting, no secret access, minimal privilege execution
- Auto-Updates - Automatic version checking and self-updating capabilities
- SQLite Backend - Lightweight, serverless persistence with no external dependencies
- HTTP API - RESTful API for programmatic access and custom integrations
# Install Neona via one-line script
curl -fsSL https://cli.neona.app/install.sh | bashNavigate to your project folder and run:
neonaThat's it! Neona's TUI will launch, automatically starting the background daemon if needed.
Neona follows a client-daemon architecture with three main components:
┌──────────────────────────────────────────────────────────────┐
│ User Interface Layer │
├──────────────────────────────────────────────────────────────┤
│ neona CLI (Go) │ neona-tui (Python/Textual) │
│ • task add/list/show │ • Rich visual interface │
│ • claim/release/run │ • Interactive commands │
│ • memory add/query │ • Real-time updates │
│ • daemon start/stop │ • Status bar with health │
└─────────────────┬──────────────┴────────────────┬────────────┘
│ │
└──────────┬ HTTP API ──────────┘
│ 127.0.0.1:7466
┌──────────────▼──────────────┐
│ Neona Daemon (Go) │
├─────────────────────────────┤
│ Control Plane Service │
│ ├── Task Management │
│ │ (CRUD + claim/release) │
│ ├── Lease Manager │
│ │ (TTL + heartbeat) │
│ ├── Run Executor │
│ │ (via Connectors) │
│ ├── Memory Service │
│ │ (add/query/search) │
│ └── PDR Writer │
│ (audit trail) │
├─────────────────────────────┤
│ Connectors │
│ └── LocalExec (allowlist) │
├─────────────────────────────┤
│ SQLite Store │
│ ~/.neona/neona.db │
│ • tasks, leases, locks │
│ • runs, pdr, memory_items │
└─────────────────────────────┘
CLI (neona) - Command-line interface for all operations, written in Go with Cobra framework
TUI (neona-tui) - Beautiful terminal UI built with Python Textual, provides rich visual experience
Daemon (neonad) - Background service that manages state, enforces policies, and executes tasks
Connectors - Pluggable execution backends (currently LocalExec with command allowlisting)
Store - SQLite database for persistent state, no external dependencies required
Multi-Agent Development - Coordinate multiple AI coding assistants working on the same codebase without conflicts
Policy-Driven Automation - Ensure all AI agents follow your organization's coding standards, security policies, and best practices
Audit & Compliance - Track every command executed by AI agents with full audit trails (PDR)
Task Management - Break down complex features into manageable tasks that can be claimed and executed systematically
Knowledge Sharing - Build a persistent memory system that AI agents can query for project context and decisions
- Task Orchestrator - Manages concurrent task execution with lease-based locking
- Policy Enforcer - Ensures all agents follow defined rules from
.ai/policy.yaml - Audit System - Tracks all operations in PDR (Process Data Record) format
- Memory Database - Maintains contextual knowledge across tasks and sessions
- Integration Hub - Connects multiple AI tools under a unified control plane
- Not a Code Editor - Works with existing editors/IDEs, doesn't replace them
- Not an Autonomous Agent - Human oversight required; agents execute defined tasks only
- Not a Secret Manager - Policy explicitly disables access to credentials and sensitive data
- Not a CI/CD System - Complements your existing pipeline, doesn't replace it
- Not a Task Creator - You define tasks; Neona orchestrates their execution
neona daemon [--listen 127.0.0.1:7466] [--db ~/.neona/neona.db]neona task add --title "Title" --desc "Description"
neona task list [--status pending|claimed|running|completed|failed]
neona task show <task-id>
neona task claim <task-id> [--holder <id>] [--ttl 300]
neona task release <task-id>
neona task run <task-id> --cmd "git status"
neona task log <task-id>neona memory add --content "Note content" [--task <task-id>] [--tags "tag1,tag2"]
neona memory query --q "search term"neona tui
# Or launch directly if neona-tui is installed
neona-tuiThe TUI provides a rich, interactive experience built with Textual (Python):
Features:
- Real-time task list with status filtering
- Detailed task view with run logs and memory
- Status bar showing daemon health, version, and statistics
- Command bar with contextual help
- Beautiful color scheme and responsive layout
Keyboard Controls:
↑/↓orj/k- Navigate tasksEnter- View task detailsTab- Cycle status filters (All/Pending/Claimed/Running/Completed/Failed)Esc- Go back to main view:- Open command moder- Refresh task listqorCtrl+C- Quit
Available Commands:
| Command | Description | Example |
|---|---|---|
add <title> |
Create new task | :add Fix authentication bug |
claim |
Claim selected task | :claim |
release |
Release claimed task | :release |
run <cmd> |
Execute command on task | :run git status |
note <text> |
Add memory note | :note Updated API endpoint |
query <term> |
Search memory | :query authentication |
refresh |
Reload task list | :refresh |
The daemon exposes a RESTful API on 127.0.0.1:7466 by default.
| Endpoint | Method | Description | Parameters |
|---|---|---|---|
/tasks |
POST | Create a new task | title, description |
/tasks |
GET | List all tasks | ?status=pending|claimed|running|completed|failed |
/tasks/{id} |
GET | Get task details | - |
/tasks/{id}/claim |
POST | Claim task with lease | holder_id, ttl_sec (default: 300) |
/tasks/{id}/release |
POST | Release task lease | holder_id |
/tasks/{id}/run |
POST | Execute command on task | holder_id, command, args[] |
/tasks/{id}/logs |
GET | Get execution logs | - |
/tasks/{id}/memory |
GET | Get task-specific memory | - |
| Endpoint | Method | Description | Parameters |
|---|---|---|---|
/memory |
POST | Add memory item | content, task_id (optional), tags[] (optional) |
/memory |
GET | Query memory items | ?q=search term |
| Endpoint | Method | Description | Response |
|---|---|---|---|
/health |
GET | Daemon health check | Version, database status, uptime |
/workers |
GET | Worker pool statistics | Active workers, queue depth |
Currently local-only (127.0.0.1). Future versions will support API tokens for remote access.
Neona is designed with security as a first-class concern:
The LocalExec connector uses a strict allowlist of permitted commands:
Allowed Commands:
go test ./...- Run Go testsgit diff- View changesgit status- Check repository status
All other commands are rejected by default. This prevents accidental or malicious code execution.
The .ai/policy.yaml file defines system-wide constraints:
task_execution:
claim_required: true # Must claim before executing
direct_main_write: false # No direct commits to main
autonomous_task_creation: false # No self-generated tasks
safety:
secrets_access: false # No credential access
speculative_changes: false # Stay within task scope
minimal_diff: true # Keep changes focused
completion:
evidence_required: true # Proof of completion needed
test_evidence: true # Test results required
diff_required: true # Show what changedEvery operation is logged in Process Data Record (PDR) format:
- Who claimed/executed the task
- What commands were run
- When each action occurred
- Results and exit codes
PDR logs are stored in SQLite and can be exported for compliance audits.
neona/
├── cmd/neona/ # Go CLI application
│ ├── main.go # Entry point with Cobra root
│ ├── daemon.go # Daemon start/stop commands
│ ├── task.go # Task CRUD operations
│ ├── memory.go # Memory management
│ ├── tui_cmd.go # TUI launcher (calls Python)
│ ├── update_cmd.go # Auto-update functionality
│ └── api_client.go # HTTP client for daemon API
│
├── internal/ # Go internal packages
│ ├── models/ # Domain types (Task, Lease, Run, etc.)
│ ├── store/ # SQLite database layer
│ ├── audit/ # PDR (Process Data Record) writer
│ ├── connectors/ # Execution backends
│ │ └── localexec/ # LocalExec with allowlisting
│ ├── controlplane/ # HTTP server + business logic
│ ├── scheduler/ # Task scheduling & workers
│ ├── mcp/ # MCP (Model Context Protocol) support
│ └── update/ # Self-update system
│
├── neona-tui/ # Python TUI (Textual-based)
│ ├── neona_tui/
│ │ ├── app.py # Main Textual application
│ │ └── api_client.py # HTTP client for Go daemon
│ ├── pyproject.toml # Python dependencies
│ └── README.md # TUI-specific docs
│
├── .ai/ # AI agent configuration
│ ├── policy.yaml # Global policy constraints
│ ├── knowledge/ # Knowledge base (Markdown)
│ └── prompts/ # System and role prompts
│
├── scripts/
│ └── install.sh # One-line installation script
│
└── docs/
└── REPO_CHARTER.md # Repository charter & governance
Neona uses the .ai/ directory as the single source of truth for all AI agents:
.ai/
├── policy.yaml # Enforcement rules and constraints
├── knowledge/ # Project-specific knowledge base
│ ├── neona_overview.md # System architecture docs
│ └── repo_map.md # Codebase navigation
└── prompts/ # AI agent instructions
├── system.md # Base system prompt
└── roles/ # Role-specific prompts
├── planner.md # Task planning agent
├── worker.md # Execution agent
└── reviewer.md # Code review agent
Default: ~/.neona/neona.db
Override with environment variable or CLI flag:
# Environment variable
export NEONA_DB_PATH=/custom/path/neona.db
# CLI flag
neona daemon --db /custom/path/neona.dbDefault listen address: 127.0.0.1:7466
Override with:
neona daemon --listen 127.0.0.1:8080
# or
export NEONA_LISTEN=127.0.0.1:8080The Go CLI discovers the Python TUI using:
NEONA_TUI_PATHenvironment variableneona-tuiin system PATH- Development fallback (when run from repo root):
neona-tui/neona_tui/app.py
- Go 1.21+ - For the CLI and daemon
- Python 3.9+ - For the TUI (optional)
- Git - For version control
# Clone the repository
git clone https://github.com/Neona-AI/Neona.git
cd Neona
# Install Go dependencies
go mod download
# Build the CLI
go build -o neona ./cmd/neona
# Run the daemon
./neona daemon
# In another terminal, use the CLI
./neona task add --title "Test task" --desc "Testing"
./neona task list# Run all Go tests
go test ./...
# Run tests with coverage
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
# Run specific package tests
go test ./internal/store/
go test ./internal/connectors/localexec/cd neona-tui
# Install in development mode
pip install -e ".[dev]"
# Run with live reload
textual run --dev neona_tui/app.py
# Ensure daemon is running first
# In another terminal: go run ./cmd/neona daemonHot Reload for Go
# Install air for auto-recompilation
go install github.com/cosmtrek/air@latest
# Run with hot reload
airTesting with Custom DB
# Use temporary database for testing
./neona daemon --db /tmp/neona-test.db --listen :8080Debugging API Calls
# Check daemon health
curl http://localhost:7466/health
# List tasks
curl http://localhost:7466/tasks
# Create a task
curl -X POST http://localhost:7466/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Debug task","description":"Testing API"}'- Follow Go Code Review Comments
- Use
gofmtfor formatting (enforced by CI) - Write tests for new features and bug fixes
- Update documentation for user-facing changes
- Keep commits atomic and well-described
Contributions are welcome! Neona is in active development and we'd love your help.
Ways to Contribute:
- 🐛 Report bugs and issues
- 💡 Suggest new features or improvements
- 📝 Improve documentation
- 🔧 Submit pull requests
- ⭐ Star the repository to show support
Before Contributing:
- Check existing issues and PRs
- Read the Repository Charter for project governance
- Follow the coding standards outlined in the Development section
- Write tests for new features
- Ensure all tests pass before submitting
Pull Request Process:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request with a clear description
Current Version: 0.0.1 (Early Development)
- MCP (Model Context Protocol) integration for Claude Desktop and other MCP clients
- Remote execution support for distributed task processing
- Advanced connectors (Docker, Kubernetes, SSH)
- Web UI for browser-based task management
- Task templates for common development workflows
- Webhook notifications for task status changes
- Multi-tenant support for team deployments
- Enhanced security with API tokens and RBAC
- Plugin system for custom connectors and policies
- Cloud sync for distributed teams
See the Issues for detailed feature requests and discussions.
Copyright (c) 2026 Fentzzz
Licensed under the GNU Affero General Public License v3 (AGPL-3.0).
This means you can:
- ✅ Use Neona for personal and commercial projects
- ✅ Modify and distribute the source code
- ✅ Use it in SaaS/hosted services
But you must:
- 📝 Disclose your source code modifications
- 📄 Include the original license and copyright
- 🔓 Share your modifications under AGPL-3.0
See the LICENSE file for full details.
This is the open source core of Neona. For enterprise features like:
- Multi-tenant cloud orchestration
- Managed teams and workspaces
- SSO/SAML authentication
- Premium support and SLAs
- Custom connectors and integrations
Check out Neona Cloud (coming soon).
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki (coming soon)
- Email: [email protected] (coming soon)
Built with ❤️ by Fentzzz
If you find Neona useful, please consider starring ⭐ the repository!