{"id":50055956,"url":"https://github.com/code-yeongyu/dori-hobby","last_synced_at":"2026-05-21T13:13:43.844Z","repository":{"id":359083460,"uuid":"1244447048","full_name":"code-yeongyu/dori-hobby","owner":"code-yeongyu","description":"Dori's hobby playground — sisyphuslabs.ai's AI assistant plays Pokémon White via senpi tools, live-streamed with human intervention","archived":false,"fork":false,"pushed_at":"2026-05-20T10:39:34.000Z","size":117,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-20T13:19:16.340Z","etag":null,"topics":["ai-agent","desmume","dori","emulator","nintendo-ds","pokemon","senpi","sisyphus","webrtc"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-yeongyu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-20T09:17:59.000Z","updated_at":"2026-05-20T10:39:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/code-yeongyu/dori-hobby","commit_stats":null,"previous_names":["code-yeongyu/dori-hobby"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/code-yeongyu/dori-hobby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fdori-hobby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fdori-hobby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fdori-hobby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fdori-hobby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-yeongyu","download_url":"https://codeload.github.com/code-yeongyu/dori-hobby/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fdori-hobby/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33301795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","desmume","dori","emulator","nintendo-ds","pokemon","senpi","sisyphus","webrtc"],"created_at":"2026-05-21T13:13:42.385Z","updated_at":"2026-05-21T13:13:43.831Z","avatar_url":"https://github.com/code-yeongyu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dori-hobby\n\nDori's hobby playground — sisyphuslabs.ai's AI assistant plays Pokémon White, live-streamed and human-intervenable.\n\n## About Dori\n\nDori is the personal AI assistant introduced in [oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent)'s README (the \"Meet your own Jobdori — Dori\" line, via Sisyphus Labs). This repo is where she does her hobbies in her downtime.\n\n## Milestone 1\n\nGoal: agent earns the Striaton Trio Badge in Pokémon White, end-to-end, with a human able to intervene mid-play.\n\n## Architecture (brief)\n\n3 Docker services (emulator/DeSmuME, mediamtx for WebRTC, web-ui for viewer + chat) plus a host-side senpi process running the `senpi-dori-desmume` extension. See [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) for the full breakdown.\n\n## Prerequisites\n\n- Docker 24+ with Docker Compose v2\n- Bun 1.3+ (for the host-side senpi agent)\n- A Pokémon White (US) NDS ROM placed at `./nds/pokemon-white.nds`\n- An LLM API key configured in senpi\n\n## Quick Start\n\n1. Place your ROM at `./nds/pokemon-white.nds` (see [`docs/ROM-PLACEMENT.md`](docs/ROM-PLACEMENT.md)).\n2. Run `./scripts/verify-rom.sh` to sanity-check the file.\n3. Run `./scripts/start.sh` to build and start the Docker services.\n4. Open http://localhost:3001/ in a browser to watch the stream.\n5. In a separate terminal, start senpi with the dori-desmume extension:\n   ```\n   senpi -e ./senpi-dori-desmume/extensions/index.ts \\\n         --system-prompt-file=./data/system-prompt.md \\\n         --context-file=./data/walkthrough.md\n   ```\n6. Dori begins playing. Type into the chat panel to intervene if she gets stuck.\n7. Success = Trio Badge appears in her Trainer Card.\n\nSee [`docs/M1-ACCEPTANCE.md`](docs/M1-ACCEPTANCE.md) for the full acceptance checklist.\n\n## Docs\n\n- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — system architecture and component interactions\n- [`docs/ROM-PLACEMENT.md`](docs/ROM-PLACEMENT.md) — how to place your ROM and BIOS files\n- [`docs/CHEATS.md`](docs/CHEATS.md) — cheat codes and save-state helpers for Milestone 1\n- [`docs/M1-ACCEPTANCE.md`](docs/M1-ACCEPTANCE.md) — acceptance criteria and test results for Milestone 1\n\n## Project structure\n\n```\ncontainers/\n  emulator/          — DeSmuME + Xvfb + ffmpeg + input-bridge\n  mediamtx/          — MediaMTX WebRTC/RTSP config\n  web-ui/            — Hono backend + React frontend\nsenpi-dori-desmume/ — senpi extension (tools + intervention WS)\ndata/               — walkthrough + system prompt\ndocs/               — architecture, cheats, ROM placement, acceptance\nscripts/            — start.sh, stop.sh, verify-rom.sh\nnds/                — ROM directory (gitignored)\nrecordings/         — fMP4 recordings (gitignored)\n```\n\n## Stack\n\n- Bun\n- Hono\n- React\n- TypeBox\n- Biome\n- DeSmuME\n- MediaMTX\n- Docker\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-yeongyu%2Fdori-hobby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-yeongyu%2Fdori-hobby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-yeongyu%2Fdori-hobby/lists"}