Observal is a free, open source marketing & customer engagement project written in Python and released under Apache-2.0. It has 4,537 GitHub stars, 1,141 forks and 201 open issues, and was last pushed 16 hours ago. On this registry it ranks #28 of 76 tracked projects in Marketing & Customer Engagement, with 5 head-to-head comparisons available. It gained 584 stars over the last 30 tracked days.

What is Observal?

Observal is a self-hosted registry and control plane for internal AI components — Skills, MCP servers, hooks, prompts, and agents — that gives an engineering organisation one governed place to publish, version, and install those components across its coding harnesses, with a built-in insight engine that shows how they are actually used.

What it is

Observal is a Python application, licensed under Apache-2.0, that combines a self-hosted server (API, web UI, and databases) with a CLI installed on each developer machine. Its README calls it "the control plane and system of record for internal AI components." It packages Skills, MCP servers, hooks, prompts, and sandboxes into versioned units that can be reviewed, approved, and shared with peers, and it renders the correct configuration for each supported harness from a single definition. It lives in the ecosystem around coding agents and the Model Context Protocol, and it integrates with Claude Code, Cursor, Kiro, Pi, Copilot, Codex, OpenCode, Antigravity CLI, and Goose.

The concrete problem it replaces is a sprawl of siloed GitHub repositories holding AI components with little or no documentation. Organisations produce these components prolifically, but adoption stays sparse because there is no discovery layer: developers cannot find an existing Skill or MCP server that already does the job, so they build the same thing again. The second failure is the missing feedback loop. Publishers get little visibility into how components are used, and AI failures do not surface as static error codes — models hallucinate or return subtly incorrect answers — so nobody learns what broke or what worked. Observal substitutes a central, searchable registry with usage analytics and session traces for that scatter of repos and guesswork.

Key capabilities

  • Bundle Skills, MCP servers, hooks, prompts, and sandboxes into one versioned unit rather than distributing them separately.
  • Run a governed registry with submission review, approval of internal agents, and version-diff inspection before components reach developers.
  • Generate per-harness configuration automatically, so one agent definition installs into Claude Code, Cursor, Kiro, Pi, Copilot, Codex, OpenCode, Antigravity CLI, or Goose without hand-written setup instructions per tool.
  • Collect real adoption and session data to identify which agents, tools, prompts, and workflows help teams.
  • Replay sessions and use traces as evidence for debugging, review, audits, and deeper analysis.
  • Deploy the server with the install-server.sh one-line installer, which pulls container images from GHCR and starts the stack.

Who uses it and how

  • Platform or developer-experience teams in tech-forward organisations that already maintain several internal AI components and need a single trusted install source.
  • Teams running more than one harness, where the per-harness config generation removes duplicated setup instructions for Claude Code, Cursor, Codex, Copilot, and the rest.
  • Reviewers and maintainers who need an approval step and version diffs before an internal agent is published to peers.
  • Engineering organisations debugging agent behaviour, using replayed session traces as evidence in reviews and audits.
  • Teams that require the registry to stay inside their own infrastructure, since the server is self-hosted rather than a hosted service.

Getting started

The server deploys with a one-line install, curl -fsSL https://raw.githubusercontent.com/Observal/Observal/main/install-server.sh | bash, which requires Docker Engine 24.0 or later with Compose v2, downloads a Docker Compose package, generates operator-owned secret files, and binds published ports to loopback by default. The CLI is then installed on each developer machine; SETUP.md and the self-hosting overview under docs/self-hosting/README.md cover the path from zero to a working stack.

How it compares

No list of paid products that Observal replaces is provided in these facts, and no directly comparable registry project is named. The tools that do appear in the facts — Claude Code, Cursor, Kiro, Codex, Copilot, and the others — are harnesses Observal renders configuration for rather than competitors, so on the evidence available it stands alone in this registry.

When to use it — and when not to

A self-hoster must operate the full server footprint the README describes — API, web UI, and databases — and roll the CLI out across every developer machine, so teams without container-hosting capacity or appetite for running internal infrastructure should not pick it. It is also a poor fit for a single developer or a small team that uses one harness and has no shared component catalogue to govern, since the registry and analytics only pay off when there is reuse to coordinate. The repository carries 201 open issues against 2,359 stars and 472 forks, which signals active development but also a substantial open backlog worth reviewing before committing.

project readme (upstream, from github) — read inline
 ██████╗ ██████╗ ███████╗███████╗██████╗ ██╗   ██╗ █████╗ ██╗
██╔═══██╗██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔══██╗██║
██║   ██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║███████║██║
██║   ██║██╔══██╗╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══██║██║
╚██████╔╝██████╔╝███████║███████╗██║  ██║ ╚████╔╝ ██║  ██║███████╗
 ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚═╝  ╚═╝╚══════╝

Observal is the control plane and system of record for internal AI components

License Python PyPI version Contributors Discord Server GHCR pulls Artifact Hub CLA assistant OpenSSF Scorecard OpenSSF Best Practices Codecov

If you find Observal useful, please consider giving it a star. It helps others discover the project and keeps development going.


What is Observal and what does it solve?

Observal is the control plane and system of record for internal AI components. Every tech-forward organization today creates internal Skills, Agents, MCP servers and other AI components to boost productivity. Though the creation of these components has been prolific, the adoption and usage of such components is sparse. Developer/AI users today end up creating their own version of AI components without reusing existing packages.

The cause is largely due to two problems:

  1. Lack of a discoverability layer

    Organizations store their AI components and agents in siloed github repositories with little to no documentation. Users are not able to locate similar components and this results in multiple developers creating the same/similar components again.

  2. Missing feedback loop

    Any software where usage patterns are not understood and the principle of user-centric development is violated tends to fade out. Such is the problem with development of MCPs, Skills and Agents. Developers publish and maintain these components with little visibility into how they're actually used. Additionally, AI failures don't trigger static error codes: they hallucinate or provide subtly incorrect answers. This leaves users clueless about what went wrong compounding the feedback problem.

Observal solves this by providing a centralized discovery layer for AI components alongside useful insights into AI usage patterns. It turns silent failures into actionable feedback, ensuring internal AI tools are continuously optimized for the people using them.

Observal supports Claude Code, Cursor, Kiro, Pi, Copilot, Codex, OpenCode, and other tools.

Why teams use Observal

  • Package components into reusable agents: Bundle Skills, MCP servers, hooks, prompts, and sandboxes into one versioned unit.
  • Run a governed registry: Review submissions, approve internal agents, inspect version diffs, and give developers one trusted place to install from.
  • Render across multiple Coding IDE/CLI: Generate the correct config for each supported harness instead of maintaining separate setup instructions for every harness.
  • Learn what works: Use real adoption and session data to find which agents, tools, prompts, and workflows are helping teams.
  • Replay sessions when needed: Use traces as evidence for debugging, review, audits, and deeper analysis.

Supported harnesses

harness
Claude Code
Kiro
Cursor
Pi
Copilot (CLI & VS Code Extension)
Codex
OpenCode
Antigravity CLI
Goose

One command to install any agent into any supported harness. The config files are generated per-harness automatically.


Quick Start

Observal has two parts: a server (API + web UI + databases) you self-host, and a CLI you install on each developer machine.

1. Deploy the server

One-line install (requires Docker Engine ≥ 24.0 with Compose v2):

curl -fsSL https://raw.githubusercontent.com/Observal/Observal/main/install-server.sh | bash

This downloads a Docker Compose package, generates operator-owned secret files with restricted container-group access, binds published ports to loopback by default, pulls container images from GHCR, and starts the stack. With a terminal it runs guided setup; without a terminal the same command applies safe defaults automatically.

Deployment docs are linked directly from this README:

From source (for contributors):

git clone https://github.com/Observal/Observal.git && cd Observal
cp .env.example .env
make up

2. Install the CLI

Standalone binary (no Python required):

curl -fsSL https://raw.githubusercontent.com/Observal/Observal/main/install.sh | bash

Python (3.11+):

uv tool install observal-cli
# or: pipx install observal-cli

3. Connect your harness

observal auth login
observal doctor --patch

This authenticates with your server, detects your harness, installs telemetry hooks, starts capturing sessions automatically, and prepares it for agent installs and registry commands.

Once logged in, run /observal inside your harness and it takes the wheel. Pull agents, submit components, browse the registry, run diagnostics:

/observal pull security-auditor
/observal scan
/observal doctor

Or just tell your agent what you want and it figures out the right commands.


How Observal works

Agents are portable context packages

An agent bundles 5 component types into a single installable package: MCP servers, skills, hooks, prompts, and sandboxes. You define the agent once, publish it to the registry, and Observal generates the right config files for whichever supported harness the user runs.

observal pull security-auditor --harness pi

The registry is the distribution layer

The registry is where agents live. Admins review submissions, version diffs keep changes auditable, and one command installs an agent into any supported harness.

Insights close the loop

Real usage data flows back as reports: what's helping, what's getting in the way, and where to improve. Session traces provide the underlying evidence for debugging and auditing.


Agent Registry

Browse, search, and install agents with harness compatibility badges:

Agent registry with grid view

Build agents visually with live config preview for every harness:

Agent Builder with preview panel

Components library: MCPs, Skills, Hooks, Prompts, Sandboxes:

Component registry showing MCP servers


Agent Insights

AI-powered insight reports analyze usage patterns across all sessions, what's working, what's hindering, and quick wins. Powered by LiteLLM, works with any provider (Anthropic, OpenAI, Bedrock, Gemini, Azure, Ollama).

Insight report with What's Working, What's Hindering, Quick Wins

See Insights LLM Setup for configuration.


Session Replay

Full session overview with token counts, models, tools, and turn-by-turn timeline:

Session detail showing tokens, tools, models, and turns

Every turn captured: user prompt, tool calls, thinking block, assistant response:

Turn expanded showing user prompt, thinking, and response

Drill into any span to see exact tool inputs and outputs:

Span detail showing bash command input and full output


Review and Governance

Admin review queue with full prompt inspection and approve/reject:

Review queue with agent detail

Side-by-side version diffs before approving a new release:

Side-by-side diff of v1.0.0 vs v2.0.0

Leaderboard tracks top agents and components by downloads:

Leaderboard with rankings


Open-source features

Audit logs, SAML SSO, SCIM provisioning, and the executive dashboard are included in the Apache-2.0 distribution.

Audit log with parameterized search:

Audit log with PHI sensitivity badges and chain hashes


Documentation

Full docs at docs.observal.io.

Start here for deployment and operations:

Need Link
Fast local or source setup SETUP.md
Self-hosting overview docs/self-hosting/README.md
Production deployment docs/self-hosting/production-deploy.md
Single-node deployment docs/self-hosting/single-node-deploy.md
Docker Compose setup docs/self-hosting/docker-compose.md
Databases and migrations docs/self-hosting/databases.md
Upgrades docs/self-hosting/upgrades.md
Backup and restore docs/self-hosting/backup-and-restore.md

Tech Stack

Layer Technology
Frontend Vite 6, React 19, TanStack Router, Tailwind CSS 4, shadcn/ui
Backend Python 3.11+, FastAPI, Strawberry GraphQL
Databases PostgreSQL 16 (registry), ClickHouse (telemetry)
Queue Redis + arq
CLI Python, Typer, Rich
Telemetry Session hooks, local transcript reconciliation, push-based ingest
Deployment Docker Compose (10 services), Kubernetes (Helm)

Contributing

See CONTRIBUTING.md. The short version:

  1. Fork and clone
  2. make hooks to install pre-commit hooks
  3. Create a feature branch
  4. Run make lint and make test
  5. Open a PR

See AGENTS.md for internal codebase context.

Community

GitHub Discussions for questions and ideas. Discord for chat. Open Issues for confirmed bugs.

Reporting Issues

observal doctor support bundle

Produces a redacted diagnostic archive. Review before sharing: observal doctor support inspect observal-support-*.tar.gz

For live debugging, Observal uses loguru-based dev logging (internally called "optic"). Stream logs with:

observal logs

Logs are written to ~/.observal/logs/dev.log and include structured context for every request, background job, and telemetry event.

Security

Report vulnerabilities via GitHub Private Vulnerability Reporting or email contact@observal.io. Do not open a public issue. See SECURITY.md.

License

Observal is licensed under the Apache License 2.0. See LICENSE.

Frequently asked questions

Is Observal free to use?

Observal is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Observal do?

Observal is self-hosted registry for your coding agent extensions with a built in insight engine. Setup Observal, define the scope and share your Skills, MCPs

What is Observal written in?

Observal is primarily written in Python. Its source is publicly available at https://github.com/Observal/Observal, and it has 4,537 GitHub stars.