MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Create 5-minute AI films with consistent characters. Iterate until you nail it. Open source and free to self-host.
MediaTypeScript · CSSGitHub @openstory-soOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open-source AI-powered video sequence platform built with TanStack Start
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Transform scripts into styled video productions using AI.
OpenStory takes a script and produces a sequence of AI-generated frames — images, motion video, audio — with consistent style across every scene. Teams collaborate on shared libraries of characters, locations, and visual styles, and the platform handles the heavy lifting of prompt engineering, generation, and compositing.Read the full README ↗OpenStory takes a script and produces a sequence of AI-generated frames — images, motion video, audio — with consistent style across every scene. Teams collaborate on shared libraries of characters, locations, and visual styles, and the platform handles the heavy lifting of prompt engineering, generation, and compositing.
| Category | Tools |
|---|---|
| Runtime | Bun |
| Framework | TanStack Start + TanStack Router + Vite |
| Database | Drizzle ORM + Cloudflare D1 (SQLite) |
| AI | TanStack AI + Fal.ai + OpenRouter + PostHog (LLM observability) |
| Workflows | Cloudflare Workflows (durable execution) |
| Realtime | Cloudflare Durable Objects (SSE progress updates) |
| Storage | Cloudflare R2 (S3-compatible) |
| Auth | Better Auth |
| Styling | Tailwind v4 + shadcn/ui |
| Quality | oxlint + oxfmt + tsgo + Lefthook + Knip |
| Testing | Vitest + Playwright |
| Deployment | Cloudflare Workers |
See AGENTS.md for full architecture documentation, server handler patterns, workflow patterns, and React conventions.
That's it. No Docker, no external database, no Cloudflare account — local dev runs the full stack (D1, R2, Workflows, Durable Objects, email) inside Workerd via Miniflare.
git clone https://github.com/openstory-so/openstory.git
cd openstory
bun install
bun dev
Open http://localhost:3000.
bun dev does everything: it generates .env.local (with auth/encryption secrets) on first run, migrates and seeds the local database, and starts the dev server.
To use AI generation features you need two API keys — run bun setup to add them interactively, or paste them into .env.local:
FAL_KEY — fal.ai for image, video & audio generationOPENROUTER_KEY — OpenRouter for LLM script analysisSee .env.example for all optional configuration (Google OAuth, Stripe, PostHog, remote R2).
| Command | Description |
|---|---|
bun dev | Bootstrap env, migrate + seed DB, start dev server |
bun setup | Interactive setup — add AI keys (--prod for deployments) |
bun tunnel:provision | Optional: 10 random public HTTPS names for ports 3000–3009 |
bun tunnel | Print this laptop's hostname map |
bun storybook | Start Storybook on port 6006 |
| Command | Description |
|---|---|
bun lint | Lint with oxlint (type-aware) |
bun lint:fix | Lint and auto-fix |
bun format | Format with oxfmt |
bun format:check | Check formatting without writing |
bun typecheck | Type-check with tsgo |
bun dead-code | Find unused exports with Knip |
| Command | Description |
|---|---|
bun run test | Run unit tests (Vitest) |
bun test:watch | Run tests in watch mode |
bun test:coverage | Run tests with coverage |
bun test:e2e | Run Playwright end-to-end tests |
bun test:e2e:ui | Run Playwright with interactive UI |
| Command | Description |
|---|---|
bun db:generate | Generate migrations from schema changes |
bun db:migrate:local | Apply migrations (also runs as part of bun dev) |
bun db:studio:local | Open Drizzle Studio against the local database |
| Command | Description |
|---|---|
bun run build | Build for production (note: not bun build) |
bun setup --prod | Interactive production setup + deploy |
bun cf:deploy:prd | Manual production deploy (build → migrate → deploy) |
The theatre player lives in packages/stitch and publishes as @openstory/stitch.
Run a local cut with npx. It prints an http://127.0.0.1 URL, opens that page, and runs until Ctrl+C.
npx @openstory/stitch --music score.mp3 shot.mp4
Install the OpenStory plugin for the agent skills. That install includes create-style, create-sequence, and stitch (/stitch). npx @openstory/stitch skill copies /stitch and stitch-player, the contract for embedding the React player. The plugin does not include stitch-player.
npx skills add openstory-so/skills
Grok, Claude Code, Codex, and the ChatGPT desktop app can add openstory-so/skills as a marketplace and install the OpenStory plugin. The per-client commands are in that repo.
The flags and the player API are in packages/stitch/README.md. That page is also in 中文, français, and español.
src/
components/ # React UI components (shadcn/ui based)
functions/ # Server functions (all business logic endpoints)
lib/ # Shared utilities, services, types
ai/ # AI model configs and prompt schemas
db/ # Database schema and clients (Drizzle)
services/ # Core business services
workflows/ # Cloudflare Workflows durable definitions
routes/ # TanStack Router file-based routes
api/ # Webhooks: workflows and auth only
_app/ # App shell (anonymous-browsable; actions gated behind login)
e2e/ # Playwright end-to-end tests
packages/stitch/ # Theatre player, the stitch command, and the stitch skills
scripts/ # CLI utilities and setup
See AGENTS.md for detailed architecture, data model, server handler patterns, and code conventions.
Cloudflare Workers — edge runtime, R2 storage, D1 database, global CDN.
The deploy button clones the repo into your Cloudflare account, provisions the resources declared in wrangler.jsonc, and sets up CI. For a guided setup from your own clone, run bun setup --prod.
CI/CD: Cloudflare Workers Builds auto-deploys on push to main — the same mechanism deploy-button clones use. Pull requests get GitHub Actions preview deployments with dedicated D1 databases.
See the Platform & Deployment section in AGENTS.md for environment variable configuration and platform detection.
We'd love your help building OpenStory! Whether it's fixing a bug, adding a feature, improving docs, or just sharing ideas — all contributions are welcome. Check out the issues labeled good first issue for a great place to start.
Read CONTRIBUTING.md for setup instructions, branch naming, code quality, and the pull request process.