# github-websocket-pipelines-api: probing GitHub Actions live-log messages

> github-websocket-pipelines-api probes GitHub Actions' undocumented live-log WebSocket interface. Its TypeScript client finds an in-progress run, obtains a socket URL through GitHub's live-log endpoints, sends a JSON handshake and WatchRunAsync request with a record separator, and prints incoming messages.

- Type: Case study
- Targets: Protocol · Website
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-07
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/Hacksore/github-websocket-pipeline-api>
- Primary source: <https://github.com/Hacksore/github-websocket-pipeline-api/blob/ab13b29608b3148569b13975d52b1bbe5550cd17/client.ts>
- Catalog page: <https://awesomerea.org/resources/github-websocket-pipelines-api-case/>
- Record JSON: <https://awesomerea.org/resources/github-websocket-pipelines-api-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/github-websocket-pipelines-api-case/index.md)

## Requirements & limits

- **Prerequisites:** A USER_SESSION environment value is required by the client.
- **Scope:** The example is fixed to a user and repository in client.ts and looks for an in-progress Actions run.
- **License:** MIT license is declared in package.json.

## Primary sources

1. <https://github.com/Hacksore/github-websocket-pipeline-api/blob/ab13b29608b3148569b13975d52b1bbe5550cd17/client.ts>
2. <https://github.com/Hacksore/github-websocket-pipeline-api/blob/ab13b29608b3148569b13975d52b1bbe5550cd17/README.md>
3. <https://github.com/Hacksore/github-websocket-pipeline-api/blob/ab13b29608b3148569b13975d52b1bbe5550cd17/package.json>

## More in Websites

- [Inception Chat: reconstructing a chat page from design and prompt captures](https://awesomerea.org/resources/inception-chat-extraction-case/index.md) · Case study
- [pipepipe-sabr: reconstructing YouTube SABR streaming](https://awesomerea.org/resources/pipepipe-sabr-case/index.md) · Case study
- [MUSIC DIVER MyPage API: mapping the game's private web endpoints](https://awesomerea.org/resources/music-diver-mypage-api-case/index.md) · Case study
- [Weathercloud JS API: mapping the private station-data endpoints](https://awesomerea.org/resources/weathercloud-js-case/index.md) · Case study
- [tutti-api: reconstructing a tutti.ch private API client](https://awesomerea.org/resources/tutti-api-case/index.md) · Case study
- [tiktok-xgnarly-decoded: reconstructing TikTok's X-Gnarly signature format](https://awesomerea.org/resources/tiktok-xgnarly-decoded-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
