Skip to content
Projects

astrofox-io/astrofox has 2,015 GitHub stars and 138 forks. GitHot measured +1 stars in 24 hours and +7 in 7 days. Last checked 2026-11-06 21:59 UTC. Last push 2026-10-31.

How these counts are measured

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

Measured star growth

in 24h
+1
in 7 days
+7
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Astrofox

What is it?

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

Quick links

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

Explore related projects