pingdotgg / pingdotgg/t3code

Supported read-only thread status stream for external tools (OpenDeck use case)

Open
#10,929 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation question via-triage
Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

[!NOTE]
🤖 Codex responding on behalf of beastyrabbit

We are developing T3 Code Status for OpenDeck, an external plugin that displays running thread counts and highlights pending user input, approvals, and plan reviews on Stream Deck keys.

The plugin currently checks the local environment endpoint and reads T3 Code's local Chromium shell cache on a timer. A shorter interval would make question alerts more responsive, but it would also repeatedly read the cache when nothing has changed. We would prefer an authenticated status subscription.

Smallest useful scope

  • An initial snapshot of current thread states.
  • Updates when work starts or stops, input or approval requests appear or are resolved, or a plan needs review.
  • Updates when threads leave the displayed set, and a way to recover the current state after reconnecting.
  • Read-only access with the narrowest available permissions.

The OpenDeck integration would remain in our project. We only need status metadata for the display; we do not need to send prompts, answer approvals, read conversation bodies, or access workspace files.

Question about the existing interface

In v0.0.40, we found read-only pairing and orchestration.subscribeShell, including the pending-input and approval flags and sequence-based resume support. This looks close to what we need already.

Is read-only pairing plus orchestration.subscribeShell the recommended interface for an external status client? If so, could a minimal supported connection example or contract be documented, covering authentication, session expiry, reconnection, and compatibility expectations?

The current orchestration:read permission also allows file reads. A narrower status-only permission would fit this use case if one is planned. If a different event interface is preferred, guidance on that would also help.

We would be happy to use the existing WebSocket stream if it is intended for this purpose. This request could be addressed independently of a broader SDK or an embedded-plugin system.

Related discussions

I understand feature proposals normally belong in Ideas discussions. Please feel free to move this there or point us to an existing thread if that is the preferred place for this specific integration question.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing read-only pairing and orchestration.subscribeShell interface, including its pending-input, approval, and sequence-resume behavior. Compare it with discussions #6686, #6933, and #6977. Done means the supported connection contract, authentication, session expiry, reconnection, and compatibility expectations are documented or the preferred interface is identified.

Written by the indexing model from the issue text.

Assessment

Domain
api, authentication, backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.