Ottto banner
ottto-ai ottto-ai

Ottto

AI community

Description

Local-first observability for AI coding agents - see what Claude Code, Codex & other agents cost and do

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Ottto Local Platform

This is the clean-slate local runtime for customer machines. It is the target production path for the daemon, CLI, macOS app, agent skill, and `/apps` integration. The retired Python companion implementation has been removed from the production repository path.

Public V1 Promise

The public `ottto` repository is intended to be enough for an external developer, support engineer, CI job, or coding agent to install, set up, verify, repair, diagnose, update, and uninstall Ottto without private repository knowledge.

Stable releases are distributed through the install owners advertised by the release manifest:

  • Homebrew tap: installs ottto, installs ottto-service, and owns brew services start ottto.
  • Hosted native installer: downloads and verifies a signed, notarized DMG or PKG without installing mutable shell-managed payloads.
  • GitHub Releases and release notes: publish immutable manifest-backed artifacts, checksums, SBOM/provenance metadata, and rollback instructions.
  • Signed Ottto.app: provides the native app path while staying aligned with the same ottto-service runtime and release manifest.

`net.ottto.service` is a single-owner user LaunchAgent. A normal install, launch, upgrade, or restart may repair only the LaunchAgent it already owns: Homebrew through `brew services`, the native app through its bundled helper, and the hosted installer through its installed helper. Replacing a different owner requires an explicit migration command; ordinary app launch must use a Homebrew-owned service without rewriting it, and ordinary Homebrew service start must not silently take over an app-bundle-owned job.

Final public-v1 closeout verifies that the public repository resolves as `ottto-ai/ottto`, uses `main` as its default branch, and has that public `main` branch head bound to the launch runtime commit. It also verifies that the exact stable GitHub Release is non-draft, non-prerelease, has `targetCommitish` bound to either