agentleFS
F1bonacc1F1bonacc1/process-compose/AGENTS.md

process-compose

AGENTS.md2.9k starsChanged 6 days agoApache-2.0View on GitHub

This file provides guidance to Codex (Codex.ai/code) when working with code in this repository. Process Compose is a process orchestrator for non-containerized applications, written in Go. It uses YAML configuration (similar to docker-compose) to define and manage processes with dependency tracking, health checks, scheduling, and more. It operates in multiple modes: TUI (default), HTTP API server, daemon, and MCP server. Run a single test: Run with debug mode: Entry point: main.go → src/cmd/root.go (Cobra CLI framework) States: Pending → Launching…

  • Reads credentials
Files
AGENTS.md

AGENTS.md

This file provides guidance to Codex (Codex.ai/code) when working with code in this repository.

Project Overview

Process Compose is a process orchestrator for non-containerized applications, written in Go. It uses YAML configuration (similar to docker-compose) to define and manage processes with dependency tracking, health checks, scheduling, and more. It operates in multiple modes: TUI (default), HTTP API server, daemon, and MCP server.

Build & Development Commands

make build              # Build binary to bin/process-compose (CGO_ENABLED=0)
make test               # Run tests with coverage
make testrace           # Run tests with race detector
make testrace-clean     # Clear test cache, then run with race detector
make lint               # Run golangci-lint (downloads to ./bin/ if needed)
make coverhtml          # Generate HTML coverage report
make swag               # Regenerate Swagger/OpenAPI docs
make schema             # Regenerate JSON schema
make docs               # Regenerate CLI documentation

Run a single test:

go test -run TestName ./src/package/...

Run with debug mode:

PC_DEBUG_MODE=1 ./bin/process-compose -e .env

Architecture

Entry point: main.go → src/cmd/root.go (Cobra CLI framework)

Key Packages (all under src/)

PackagePurpose
cmd/Cobra CLI command definitions
app/Core process execution engine — ProjectRunner manages lifecycle of all processes, Process wraps individual process execution
types/Domain models — Project, ProcessConfig, ProcessState, dependency graph
loader/YAML config parsing, env var expansion, project merging, validation
config/CLI flags, global settings, themes, version info (embedded via ldflags)
api/REST API using Gin framework, WebSocket support, Swagger docs
tui/Terminal UI using rivo/tview — process table, log viewer, terminal view
client/HTTP client for remote API communication
health/Liveness/readiness probe implementations (HTTP, exec)
scheduler/Cron/interval-based process scheduling via gocron/v2
mcp/Model Context Protocol server, tools, and resources
pclog/Process log buffers with rotation and ANSI color tracking
command/Shell command execution abstraction (cross-platform, PTY support)
admitter/Namespace-based process filtering
templater/Variable/template expansion using envsubst

Data Flow

CLI/API Input → Cobra Commands (cmd/) → ProjectRunner (app/)
  → Process execution with dependency resolution
  → Health checks (health/) + Scheduling (scheduler/)
  → State updates → TUI (tui/) / API (api/) output
  → Logs → ProcessLogBuffer (pclog/)

Process Lifecycle

States: Pending → Launching → Running → [Restarting] → Terminating → Completed/Error

Dependency conditions: process_started, process_healthy, process_completed, process_log_ready

Config Auto-Discovery

Searches for: compose.yml, compose.yaml, process-compose.yml, process-compose.yaml with optional .override.* files.

Key Frameworks & Libraries

  • CLI: spf13/cobra
  • HTTP API: gin-gonic/gin
  • TUI: rivo/tview + gdamore/tcell/v2
  • YAML: gopkg.in/yaml.v3
  • Logging: rs/zerolog
  • Process metrics: shirou/gopsutil/v4
  • Scheduling: go-co-op/gocron/v2
  • MCP: mark3labs/mcp-go

Concurrency Model

Heavy use of goroutines, mutexes, and channels for process coordination. ProjectRunner uses fine-grained mutexes to manage shared process state maps. Always run make testrace to catch data races.

Rust Component

A Rust client library lives in crates/ (workspace with client and example crates). This is a separate component with its own CI workflow.

Download now (ZIP)

Trending

Less talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 3 mentionsMar 2026: 3 mentionsApr 2026: 2 mentionsMay 2026: 6 mentionsJun 2026: 4 mentionsJul 2026: 4 mentionsAug 2026: 6 mentionsSep 2026: 5 mentionsOct 2026: 5 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the F1bonacc1/process-compose repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about F1bonacc1/process-compose

The biggest 5 of 64 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 64

Talked about on GitHub, Hacker News, Bluesky and Stack Overflow (64 times).

On GitHub · 50

45 more on GitHub

On Bluesky · 6

1 more on Bluesky

On Stack Overflow · 1

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.