TypeScript MIT

astrofox

Astrofox is a motion graphics program that lets you turn audio into stunning visuals.

A

astrofox-io

Dernière activité 27 sept. 2026
astrofox-io/astrofox

2 k

étoiles

138

forks

17

issues ouvertes

audioaudio-audio-analysisaudio-reactiveaudio-reactive-visualsaudio-visualizermotion-graphicsmusic-visualizervideo

Ce README est souvent en anglais.

Astrofox

What is it?

Astrofox is a motion graphics program that lets turn audio into amazing videos.

Running Astrofox

Get the source

git clone https://github.com/astrofox-io/astrofox.git

Install dependencies

pnpm install

Build the application

pnpm build

Start the application

pnpm start

Running for development

Run:

pnpm dev

Astrofox is a client-side Next.js app. Projects are opened and saved as local .afx files (.json and legacy gzip-compressed .afx projects can still be opened). There is no backend or auth service required for development.

File I/O: web and desktop use the same browser pickers (File System Access API, with <input> / download fallbacks). The Electron bridge is reserved for window chrome, temp files, and ffmpeg export (absolute paths only when needed). See docs/desktop-capabilities.md.

Fonts: Inter is the only bundled font and the default for new text layers. Desktop scans installed font families through Chromium's Local Font Access API; it never downloads text fonts. The web picker searches the Google Fonts catalog and loads selected families and their available regular/bold/italic faces from Google's CSS API on demand. Internet access is required for uncached web fonts. Projects keep their font family names; unavailable families fall back to Inter.

src/lib/config/googleFonts.json is a metadata snapshot from https://fonts.google.com/metadata/fonts (no font files or API key). Refresh it with pnpm fonts:refresh when updating the catalog. This metadata endpoint is not a documented API contract; refreshes validate the expected response shape.

Web (Vercel)

Commits deploy through Vercel using the standard build:

pnpm build

Do not change this script for desktop packaging.

Desktop (Electron, offline)

Development (Next dev server + Electron shell):

pnpm dev:desktop

Production package (static export + electron-builder):

pnpm package

Desktop uses BUILD_TARGET=desktop for a static export into out/, then packages electron/ + out/. The web Vercel path is unchanged. Installers are written to release/.

Platform-specific and unpacked variants:

pnpm package:dir
pnpm package:mac
pnpm package:win
pnpm package:linux

MCP automation: turn on Enable MCP server in desktop Settings → MCP server, then copy the connection details shown there. The setting and token persist across app restarts. See MCP setup and tools.

Video export

  • Web: browser MediaRecorder (WebM/MP4 when supported)
  • Desktop: offline frame render → bundled ffmpeg → MP4 (H.264/AAC). Packaging commands download the platform binary and include it under bin/.

License

MIT

Projets similaires

Visualize Your Ideas With Code

TypeScriptanimationpresentationvisualization
Mmotion-canvas
19,2 k étoiles827

Audio waveform player

TypeScriptaudiojavascriptmusic
Kkatspaugh
10,4 k étoiles1,8 k

High-resolution real-time graphic audio spectrum analyzer JavaScript module with no dependencies.

JavaScriptaudio-analysisaudio-visualizerjavascript
Hhvianna
952 étoiles97