Imported from zax4r0/aether-stream (
aether-stream/AGENTS.md). Install upstream withnpx skills add zax4r0/aether-stream --skill aether-stream. Copyright stays with the author.
Skill Loading
Before substantial work:
- Skill check: run
bunx @tanstack/intent@latest list, or use skills already listed in context. - Skill guidance: if one local skill clearly matches the task, run
bunx @tanstack/intent@latest load <package>#<skill>and follow the returnedSKILL.md. - Monorepos: when working across packages, run the skill check from the workspace root and prefer the local skill for the package being changed.
- Multiple matches: prefer the most specific local skill for the package or concern you are changing; load additional skills only when the task spans multiple packages or concerns.
Durable Project Context: AetherStream & Unified TanStack Hub
AetherStream has been re-scaffolded as a feature-rich, high-performance TanStack Start application utilizing a unified TanStack technology stack.
Exact CLI Command Used
npx @tanstack/cli@latest create my-tanstack-app --agent --package-manager bun --tailwind --add-ons ai,shadcn,store,neon,drizzle,tanstack-query,table,form,biome --yes --non-interactive
Chosen Stack & Integrations
- Application Framework: TanStack Start (React 19)
- Routing & SSR: TanStack Router (Fully type-safe routes, search validation, loaders)
- Data Fetching & Cache: TanStack Query
- State Management: TanStack Store
- Form Validation: TanStack Form
- Data Presentation: TanStack Table
- UI Components: Shadcn UI (accessible custom inputs, selects, switches, buttons)
- Headless UI Primitives: Base UI (
@base-ui-components/react) - Toolchain: BiomeJS (Rust-based super-fast linter & formatter)
- Styling: Tailwind CSS (v4)
- Runtime & Package Manager: Bun (v1.3.14)
Key Architectural Decisions
- Serverless Core & Client-side P2P:
- The app runs inside modern serverless contexts (Cloudflare/Nitro).
- Dynamic media scraping and addon aggregation run client-side in the browser.
- Raw BitTorrent sequentially prioritized downloading is offloaded to the Aether Rust backend daemon (
aether-daemon) running locally onhttp://127.0.0.1:23700.
Environment Variable Requirements
Create a .env file at the root of aether-stream if needed for custom API endpoints.
Known Gotchas & Workarounds
[!IMPORTANT] Bun Runtime Since Bun is fully installed and active, always run commands with Bun to leverage its speed:
bun run dev # Starts the development server bun run build # Generates the production bundle
[!CAUTION] Database Migrations Before starting the app in a production environment, ensure that you have provisioned a Neon serverless Postgres database and run the Drizzle migration scripts:
bun db:push # Pushes schema updates to the Neon DB
Next Steps for Development
- Examine AI Chat Layout: Inspect the pre-configured routes inside
src/routes/that handle the chat screen. - Integrate Cinema Dashboard: Build an integrated cinema catalog view inside the dashboard route (
src/routes/index.tsx) alongside the AI chat client. - Core Stores & Types: Transfer
stremio.tsprotocol interfaces, and connectAddonStore.ts/PlayerStore.tsto manage streaming assets concurrently.
