omp packages

observal-pi1.15.1

Observal session telemetry for Pi — zero-dependency extension that pushes session traces to your Observal server

GitHub Actions Published 3 days ago Apache-2.0 ~515 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

observal-pi

Session telemetry extension for Pi that pushes conversation traces to your Observal server.

Install

observal doctor patch --harness pi

Doctor installs the bundled TypeScript extension directly at ~/.pi/agent/extensions/observal.ts and records the CLI version it came from in ~/.pi/agent/extensions/.observal-extension.json. observal auth login does the same automatically.

Alternatively, register this package in ~/.pi/agent/settings.json:

{ "packages": ["npm:observal-pi"] }

The two modes are mutually exclusive. With the npm package registered, Observal never writes the local file; it only reports when a pinned version has fallen behind the CLI. Pi loads both channels if both are present, which sends every session twice, so doctor removes a local copy it recognizes as its own once npm is configured (keeping it as observal.ts.bak). A local file Observal did not write is always left alone.

Prerequisites

  1. An Observal account (run observal auth login to authenticate)
  2. Pi installed (>=0.74.0)

What it does

  • Incremental push: After each user prompt (agent_end), durably stages new JSONL lines before sending them to Observal
  • Acknowledged checkpoints: Advances byte and line cursors only after a contiguous server acknowledgement
  • Final push: On session exit, sends remaining lines and a SHA-256 audit manifest; mismatches replay from the requested range
  • Crash recovery: Retries durable pending batches and rebuilds missing/corrupt cursors from the authenticated server checkpoint
  • Status indicator: Shows ● observal in the footer with line count

Commands

Command Description
/obs-sync Show sync status (lines pushed, server URL)
/obs-sync flush Force push pending lines now
/obs-sync config Show config file path and server URL

Design

  • Zero dependencies: only node:* built-ins
  • Fail-open: never throws, never crashes pi. If the server is unreachable, pi continues normally
  • 5s timeout: all HTTP calls abort after 5 seconds
  • Chunked uploads: batches of 500 lines max per request
  • Retry-safe: pending batches retain stable source indexes and are retried until acknowledged

Configuration

The extension reads credentials from ~/.observal/config.json (written by observal auth login):

{
  "server_url": "https://your-server.observal.dev",
  "access_token": "..."
}

Acknowledged cursors are stored atomically in ~/.observal/sync_state.json. Unacknowledged Pi batches remain in ~/.observal/pi_session_outbox/ until the server confirms a contiguous checkpoint.

License

Apache-2.0. See LICENSE