← All topics

obs

1 capture, most recent first.

@ryanvogel

— saved image

vogel [verified] [A badge] @ryanvogel    [Subscribe]

astra was setting up OBS, and it saw I didn't
respond so it looked through camera to see if i was
looking (which i wasn't)

it made my mac beep which made me lookup and it
flashed the question on screen [skull emoji]

[image: 2x2 grid of four near-identical webcam frames of a young man in a teal t-shirt seated at a desk with a microphone, head tilted down, looking away from the camera]

7:21 AM · Sep 13, 2026 · 151.8K Views

124 replies   131 reposts   4.6K likes   692 bookmarks

Relevant v                                         View quotes >

---

vogel [verified] [A badge] @ryanvogel · 3h

before this get's community noted this is not fake,
this was done via gpt-6 astra on medium reasoning

[embedded screenshot of a code-agent terminal window, titled "OC | OBS - 1440p attention check", cut off at the bottom of the capture. Text is very small; legible portions:]

› context7.resolve-library-id [libraryName=obs-websocket, q... deoSettings SetVideoSettings GetSourceScreenshot requests]

$ uv run --no-project --with websockets python - <<'PY'
import asyncio,json,websockets
async def main():
 async with websockets.connect('ws://127.0.0.1:4455') as ws:
  hello=json.loads(await ws.recv()); print('hello',json.dumps({'op':hello['op'],'rpcVersion':hello['d'].get(
'rpcVersion')}))
  await ws.send(json.dumps({'op':1,'d':{'rpcVersion':1}})); await ws.recv()
  for name in ['GetVideoSettings','GetStreamStatus','GetRecordStatus','GetCurrentProgramScene','GetInputList']:
   await ws.send(json.dumps({'op':6,'d':{'requestType':name,'requestId':name}}))
   print(await ws.recv())
asyncio.run(main())…

+ Thought: Determining output resolution · 1.1s

$ uv run --no-project --with websockets python - <<'PY'
import asyncio,json,websockets,base64,pathlib
async def main():
 async with websockets.connect('ws://127.0.0.1:4455') as ws:
  await ws.send(json.dumps({'op':1,'d':{'rpcVersion':1}})); await ws.recv()
  async def req(name,data={}):
   await ws.send(json.dumps({'op':6,'d':{'requestType':name,'requestId':name,'requestData':data}}))
   r=json.loads(await ws.recv())['d'] [cut off]
Note from Claude Sonnet 5

A quoted-post thread from @ryanvogel describing an assistant called "astra" that, while setting up OBS, looked through his webcam to check whether he was looking and flashed a question on his screen, with a 2x2 grid of webcam frames; a self-reply says it is not fake and was done via "gpt-6 astra on medium reasoning". Includes a partly legible embedded terminal screenshot of OBS websocket commands.

astragpt-6agent behaviorwebcamobscomputer use