orbita

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2026 License: MIT

README

Orbita

Go License

CLI-first adaptive productivity operating system that orchestrates tasks, calendars, habits, and meetings with intelligent scheduling engines.

Features

  • Task Management - CORE framework (Capture, Organize, Review, Execute)
  • Intelligent Scheduling - AI-powered time-blocking with energy-aware placement
  • Smart Habits - Adaptive habit scheduling that learns from your behavior
  • Meeting Coordination - Smart 1:1 scheduler and meeting optimization
  • AI Inbox - Natural language processing for inbox zero
  • Automations - User-defined automation rules with pattern matching
  • Extensible Engine SDK - Build custom scheduling, priority, classification, and automation engines

Architecture

Orbita follows Domain-Driven Design with a modular monolith architecture:

internal/
├── identity/        # User authentication and profiles
├── billing/         # Stripe integration, module subscriptions
├── productivity/    # Tasks, capture, reviews (CORE)
├── scheduling/      # Central scheduling engine, time-blocking
├── habits/          # Smart habits with adaptive scheduling
├── meetings/        # Smart 1:1 scheduler
├── inbox/           # AI-powered inbox processing
├── calendar/        # Calendar sync and management
├── engine/          # Pluggable engine SDK
│   ├── sdk/         # Core interfaces
│   ├── types/       # Engine type definitions
│   ├── registry/    # Plugin management
│   ├── runtime/     # Execution with circuit breakers
│   ├── grpc/        # gRPC protocol for plugins
│   └── builtin/     # Built-in engines
└── shared/          # Cross-cutting concerns
Event-Driven Architecture
  • RabbitMQ with topic exchanges for reliable messaging
  • Outbox pattern for guaranteed event delivery
  • At-least-once delivery semantics

Quick Start

Prerequisites
  • Go 1.25+
  • Docker and Docker Compose
  • PostgreSQL 15+
  • RabbitMQ 3.12+
  • Redis 7+
Installation
# Clone the repository
git clone https://github.com/felixgeelhaar/orbita.git
cd orbita

# Install development tools
make tools

# Start infrastructure services
make docker-up

# Apply database migrations
make migrate-up

# Build the CLI
make build
Usage
# Create a task
./bin/orbita task create "Review PR #123" -p high -d 30

# List all tasks
./bin/orbita task list

# Complete a task
./bin/orbita task complete <task-id>

# Start MCP server for AI integrations
./bin/orbita mcp serve

Development

Commands
Command Description
make build Build the CLI binary to bin/orbita
make build-worker Build the background worker
make build-mcp Build the MCP server
make test Run all tests with race detection
make test-unit Run unit tests only
make coverage Generate test coverage report
make lint Run golangci-lint
make docker-up Start PostgreSQL, Redis, RabbitMQ
make docker-down Stop infrastructure services
make migrate-up Apply database migrations
make migrate-down Rollback last migration
make sqlc Generate type-safe SQL queries
make tools Install development tools
Project Structure
orbita/
├── cmd/
│   ├── orbita/     # CLI entrypoint
│   ├── mcp/        # MCP server entrypoint
│   └── worker/     # Background worker entrypoint
├── internal/       # Private application code
├── pkg/            # Public packages (SDK)
├── migrations/     # SQL migrations
├── db/             # sqlc queries and configuration
├── deploy/         # Docker Compose and deployment configs
└── specs/          # API and design specifications

Engine SDK

Orbita features a pluggable engine system for customizing scheduling, prioritization, classification, and automations.

Built-in Engines
Engine Default Pro
Priority Weighted scoring Eisenhower matrix, context awareness
Scheduler Basic time-blocking Ideal week alignment, energy optimization
Classifier Pattern matching NLU, entity extraction, multi-label
Automation Simple rules Pattern matching, webhooks, conditional actions
Creating Custom Engines

Engines implement the SDK interfaces and run as gRPC plugins:

// Priority Engine Example
type MyPriorityEngine struct{}

func (e *MyPriorityEngine) Metadata() sdk.EngineMetadata {
    return sdk.EngineMetadata{
        ID:      "acme.priority-custom",
        Name:    "ACME Custom Priority",
        Version: "1.0.0",
        Type:    sdk.EngineTypePriority,
    }
}

func (e *MyPriorityEngine) CalculatePriority(
    ctx *sdk.ExecutionContext,
    input types.PriorityInput,
) (*types.PriorityOutput, error) {
    // Your custom priority logic
}

Orbits (Modules)

Orbita offers subscribable feature modules called "Orbits":

  • Smart Habits - Adaptive habit scheduling
  • Smart 1:1 Scheduler - Intelligent meeting coordination
  • Auto-Rescheduler - Automatic conflict resolution
  • AI Inbox Pro - Advanced NLU classification
  • Priority Engine Pro - Eisenhower matrix prioritization
  • Focus Mode Pro - Deep work optimization
  • Ideal Week Designer - Weekly template planning
  • Project AI Assistant - Project management intelligence
  • Time Insights - Analytics and time tracking
  • Couples & Family Scheduler - Shared scheduling
  • Automations Pro - Advanced automation rules
  • Wellness Sync - Health and wellness integration

Design Principles

  • Autonomy over configuration - System works without extensive setup
  • Adaptation over rigidity - Continuous adjustment to user behavior
  • Determinism over opaque AI - Scheduling logic is predictable; AI supports, doesn't decide
  • Modular monolith - Service-ready boundaries, deployed as one unit

Tech Stack

  • Language: Go 1.25+
  • Database: PostgreSQL with sqlc
  • Cache/Queues: Redis
  • Event Bus: RabbitMQ
  • Auth: OAuth2
  • Plugin System: HashiCorp go-plugin (gRPC)
  • Circuit Breaker: sony/gobreaker

Contributing

See CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Directories

Path Synopsis
adapter
api
Package api provides HTTP API handlers for the Orbita marketplace.
Package api provides HTTP API handlers for the Orbita marketplace.
cli
mcp
cmd
mcp command
orbita command
worker command
db
examples
engines/acme-eisenhower command
Package eisenhower provides an example Eisenhower Matrix priority engine for Orbita.
Package eisenhower provides an example Eisenhower Matrix priority engine for Orbita.
orbits/acme-pomodoro
Package pomodoro provides an example Pomodoro timer orbit for Orbita.
Package pomodoro provides an example Pomodoro timer orbit for Orbita.
internal
app
automations/application
Package application contains the automation rules application layer.
Package application contains the automation rules application layer.
automations/domain
Package domain contains the automation rules domain model.
Package domain contains the automation rules domain model.
automations/infrastructure/persistence
Package persistence provides PostgreSQL implementations for automation repositories.
Package persistence provides PostgreSQL implementations for automation repositories.
engine/builtin
Package builtin provides built-in engine implementations that ship with Orbita.
Package builtin provides built-in engine implementations that ship with Orbita.
engine/grpc
Package grpc provides gRPC-based plugin communication for Orbita engines.
Package grpc provides gRPC-based plugin communication for Orbita engines.
engine/registry
Package registry provides engine registration, discovery, and lifecycle management.
Package registry provides engine registration, discovery, and lifecycle management.
engine/runtime
Package runtime provides execution management for engines with circuit breakers and metrics.
Package runtime provides execution management for engines with circuit breakers and metrics.
engine/sdk
Package sdk provides the core interfaces and types for Orbita's engine plugin system.
Package sdk provides the core interfaces and types for Orbita's engine plugin system.
insights/application
Package application contains the application layer for the insights bounded context.
Package application contains the application layer for the insights bounded context.
insights/application/commands
Package commands contains command handlers for the insights bounded context.
Package commands contains command handlers for the insights bounded context.
insights/application/queries
Package queries contains query handlers for the insights bounded context.
Package queries contains query handlers for the insights bounded context.
insights/domain
Package domain contains the domain model for the insights bounded context.
Package domain contains the domain model for the insights bounded context.
insights/infrastructure/persistence
Package persistence provides PostgreSQL implementations for insights repositories.
Package persistence provides PostgreSQL implementations for insights repositories.
marketplace/application/queries
Package queries provides query handlers for the marketplace.
Package queries provides query handlers for the marketplace.
marketplace/domain
Package domain provides the core entities for the Orbita marketplace.
Package domain provides the core entities for the Orbita marketplace.
marketplace/infrastructure/persistence
Package persistence provides PostgreSQL implementations for marketplace repositories.
Package persistence provides PostgreSQL implementations for marketplace repositories.
mcp
orbit/api
Package api provides sandboxed API implementations for orbits.
Package api provides sandboxed API implementations for orbits.
orbit/builtin/focusmode
Package focusmode provides the Focus Mode orbit for deep work and distraction-free productivity.
Package focusmode provides the Focus Mode orbit for deep work and distraction-free productivity.
orbit/builtin/idealweek
Package idealweek provides the Ideal Week Designer orbit for schedule planning.
Package idealweek provides the Ideal Week Designer orbit for schedule planning.
orbit/builtin/wellness
Package wellness provides the Wellness Sync orbit for health and wellness tracking.
Package wellness provides the Wellness Sync orbit for health and wellness tracking.
orbit/registry
Package registry provides orbit registration, discovery, and lifecycle management.
Package registry provides orbit registration, discovery, and lifecycle management.
orbit/runtime
Package runtime provides orbit execution and sandbox enforcement.
Package runtime provides orbit execution and sandbox enforcement.
orbit/sdk
Package sdk defines the core interfaces for Orbita's Orbit module system.
Package sdk defines the core interfaces for Orbita's Orbit module system.
shared/infrastructure/convert
Package convert provides safe type conversion utilities.
Package convert provides safe type conversion utilities.
shared/infrastructure/security
Package security provides security utilities for path validation and sanitization.
Package security provides security utilities for path validation and sanitization.
pkg
enginesdk
Package enginesdk provides the public SDK for building Orbita engine plugins.
Package enginesdk provides the public SDK for building Orbita engine plugins.
enginesdk/testing
Package testing provides testing utilities for Orbita engine plugins.
Package testing provides testing utilities for Orbita engine plugins.
observability
Package observability provides structured logging, metrics collection, and request tracing utilities for Orbita.
Package observability provides structured logging, metrics collection, and request tracing utilities for Orbita.
orbitsdk
Package orbitsdk provides the public SDK for developing Orbita orbit modules.
Package orbitsdk provides the public SDK for developing Orbita orbit modules.
orbitsdk/testing
Package testing provides test utilities for orbit module development.
Package testing provides test utilities for orbit module development.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL