@superbased/observer 1.24.1 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -41,6 +41,7 @@ the full two-plane explainer.
41
41
  - [Per-AI-client setup](#per-ai-client-setup)
42
42
  - [Architecture in detail](#architecture-in-detail)
43
43
  - [Dashboard tour](#dashboard-tour)
44
+ - [Terminals — launch, join, and track your AI CLIs](#terminals--launch-join-and-track-your-ai-clis)
44
45
  - [MCP tools reference](#mcp-tools-reference)
45
46
  - [Compression mechanisms](#compression-mechanisms)
46
47
  - [Cost and token math](#cost-and-token-math)
@@ -719,6 +720,125 @@ Each compression mechanism (json / code / logs / text / diff / html
719
720
  explaining the actual algorithm.
720
721
 
721
722
 
723
+ ## Terminals — launch, join, and track your AI CLIs
724
+
725
+ The dashboard is also a terminal host. Instead of tracking your AI
726
+ CLIs from the outside, you can launch them *inside* observer, watch
727
+ their live telemetry alongside the session they produce, and — new in
728
+ v1.25.0 — join a running one from a second browser tab. The terminal
729
+ surfaces are read-only where they touch your files and single-writer
730
+ where they touch your keyboard; nothing here mutates a repo or lets
731
+ two people type at once.
732
+
733
+ ### Launch any supported AI CLI as a real terminal
734
+
735
+ Nineteen CLI launchers — claude, codex, opencode, cursor, copilot-cli,
736
+ kilo, cline-cli, hermes, gemini, openclaw, pi, antigravity, qwen,
737
+ kiro, grok, kimi, devin, qoder, goose — start from the dashboard's
738
+ **Launch here** control or from the command line as `observer <verb>`
739
+ (`observer claude`, `observer codex`, and so on). Each opens a **real
740
+ PTY** — a native pseudo-terminal on Linux and macOS, and a native
741
+ ConPTY on Windows 10 1809+ and Windows 11 (no WSL required). If the
742
+ tool's binary isn't on your `$PATH`, the launcher offers a guided
743
+ one-click install rather than failing. Dashboard launching is gated by
744
+ `[handoff].allow_dashboard_launch` (default `true`).
745
+
746
+ (The count is nineteen *launchers*, not the adapter count — observer
747
+ tracks 26 adapters in total, but only these nineteen ship a first-class
748
+ terminal launcher.)
749
+
750
+ ### Attach-by-default
751
+
752
+ As of v1.25.0, `observer <verb>` runs the child **daemon-owned** so the
753
+ dashboard can join it, while the native terminal you launched from stays
754
+ fully interactive as seat #1 — you lose nothing by getting the extra
755
+ reach. Opt out per-run with `--no-attach`, or globally with
756
+ `[terminal.attach].default_on = false`; scripted or piped runs never
757
+ attach.
758
+
759
+ A daemon-owned child forwards more than the routing above: it also
760
+ carries over your shell's values for each tool's
761
+ registry-documented credential env keys — `ANTHROPIC_API_KEY` for
762
+ claude-code, `OPENAI_API_KEY` for codex and pi, `OPENROUTER_API_KEY`
763
+ for hermes, `XAI_API_KEY` for grok, `GEMINI_API_KEY`/`GOOGLE_API_KEY`
764
+ for gemini-cli, `COPILOT_PROVIDER_API_KEY` for copilot-cli, and others
765
+ with registry-documented key envs — so a shell-exported API key works
766
+ under attach exactly as it would bare. This is gated by
767
+ `[terminal.attach].forward_auth_env` (default `true`); values transit
768
+ the owner-only attach socket once per launch and are never logged or
769
+ persisted. One honest caveat remains: tools without a registry-documented
770
+ credential env (config-file, OAuth, or keychain auth) still see only
771
+ the **daemon's** environment, and dashboard-launched terminals always
772
+ do (there's no client shell to forward from) — for those, either
773
+ export the credential where `observer start` runs, or use
774
+ `--no-attach` to keep the child in your shell's environment.
775
+
776
+ ### Jump in — multi-seat terminals
777
+
778
+ Every live daemon-owned run is joinable from any dashboard tab, whether
779
+ that tab is local or a paired remote device, as an extra seat. A
780
+ terminal holds up to **8 viewers** but exactly **one writer** at a time.
781
+ The writer lease moves seamlessly across the native terminal, a local
782
+ dashboard tab, and a remote dashboard tab — type into the native
783
+ terminal to reclaim it; an authenticated remote can take over with a
784
+ read-only fallback and a take-back for the seat it displaced. A freshly
785
+ launched run correlates to its observer session in roughly 10–30
786
+ seconds, after which its live telemetry lines up with the captured data.
787
+
788
+ ### Per-terminal Files & Git panels
789
+
790
+ Each AI-tool terminal carries a read-only **Files** panel — a file tree
791
+ plus a text viewer rooted at that terminal's project root — and a
792
+ read-only **Git** panel showing branch, upstream, ahead/behind counts,
793
+ working-tree status, and a 100-commit log. Right-click to copy a path or
794
+ paste it into a live terminal. This is a read-only view in v1: no file
795
+ mutations, no diff view.
796
+
797
+ ### Session Cockpit
798
+
799
+ Toggle the **⊙ Session** control on any AI-tool terminal for a
800
+ draggable, live panel of everything observer knows about that run:
801
+
802
+ - **Last activity** and **tokens/sec**, tagged with a measured-vs-
803
+ estimated badge
804
+ - **Live cost** with the AI-vs-tool split, plus the **next-message
805
+ cost band**
806
+ - **Context fill** against the model's context budget, and — for
807
+ proxy-routed sessions — the **5h / 7d rate-limit gauge**
808
+ - **Prompt-cache expiry chips** for the caches this session is keeping
809
+ warm
810
+ - **CPU / memory / disk sparklines** and the spawned-process tree for
811
+ the terminal
812
+ - The **last five turns**, each deep-linked into the full session
813
+ detail view
814
+
815
+ ### Workspace grid
816
+
817
+ Run up to **9 concurrent tiles** (`[terminal].max_concurrent`),
818
+ drag and resize them, and your layout persists across reloads. On a
819
+ paired remote device the grid is read-only.
820
+
821
+ ### Restarts & continuity
822
+
823
+ claude and codex **auto-resume the same transcript** after a daemon
824
+ restart — a verified native resume, so the conversation continues where
825
+ it left off. Every other tool's attached session ends when the daemon
826
+ restarts; to pick the work back up, fork it with
827
+ `observer <verb> --continue-from <session-id>`. That opens a new session
828
+ id and seeds a distilled handover of the prior session as its first
829
+ prompt — it works for all nineteen launchers.
830
+
831
+ ### Remote posture
832
+
833
+ Remote terminal access is opt-in, **tailnet-only** (served over your
834
+ private Tailscale network as private HTTPS), and off by default — there
835
+ is no public-internet exposure. It splits into a view tier and an
836
+ execute tier: `[remote].allow_terminal` (default `false`) governs remote
837
+ *keyboard* control, while `[remote].allow_terminal_view` (default
838
+ `true`) governs read-only viewing. Pairing is phone-first via QR code,
839
+ and the dashboard is mobile-friendly for checking in from a phone.
840
+
841
+
722
842
  ## MCP tools reference
723
843
 
724
844
  Once you've run `observer init` (it's opt-in — `observer start`
@@ -41,6 +41,7 @@ the full two-plane explainer.
41
41
  - [Per-AI-client setup](#per-ai-client-setup)
42
42
  - [Architecture in detail](#architecture-in-detail)
43
43
  - [Dashboard tour](#dashboard-tour)
44
+ - [Terminals — launch, join, and track your AI CLIs](#terminals--launch-join-and-track-your-ai-clis)
44
45
  - [MCP tools reference](#mcp-tools-reference)
45
46
  - [Compression mechanisms](#compression-mechanisms)
46
47
  - [Cost and token math](#cost-and-token-math)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superbased/observer",
3
- "version": "1.24.1",
3
+ "version": "1.26.0",
4
4
  "description": "Claude Code cost tracking, Cursor token usage, Codex spend — AI coding agent observability across 26 adapters, proxy-accurate token counts and cost.",
5
5
  "keywords": [
6
6
  "ai",
@@ -42,11 +42,11 @@
42
42
  "LICENSE"
43
43
  ],
44
44
  "optionalDependencies": {
45
- "@superbased/observer-linux-x64": "1.24.1",
46
- "@superbased/observer-linux-arm64": "1.24.1",
47
- "@superbased/observer-darwin-x64": "1.24.1",
48
- "@superbased/observer-darwin-arm64": "1.24.1",
49
- "@superbased/observer-win32-x64": "1.24.1"
45
+ "@superbased/observer-linux-x64": "1.26.0",
46
+ "@superbased/observer-linux-arm64": "1.26.0",
47
+ "@superbased/observer-darwin-x64": "1.26.0",
48
+ "@superbased/observer-darwin-arm64": "1.26.0",
49
+ "@superbased/observer-win32-x64": "1.26.0"
50
50
  },
51
51
  "scripts": {
52
52
  "test": "node bin/observer.js --version"