Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

vernalroot/CodecKoala

Repository files navigation

CodecKoala

CodecKoala is a desktop Electron app that uses OpenRouter to generate safe FFmpeg commands, validates them, and runs ffmpeg with strict security constraints.

Developer and contributor docs live in DEVELOPER_DOCS/. End-user guidance lives in UserGuide.md. Release history lives in CHANGELOG.md.

Requirements

  • Node.js 20+ and npm
  • ffmpeg and ffprobe available in your PATH
  • OpenRouter API key

Setup

  1. Install dependencies
npm install
  1. For local development, create a .env file in the project root from .env.example:
OPENROUTER_API_KEY=your_key_here
OPENROUTER_DEFAULT_MODEL=your_preferred_model_id
VIBEFFMPEG_TIMEOUT_MS=30000
  1. Run the app
npm run dev

Build

npm run build

Linux AppImage (Pop!_OS / Ubuntu-style)

End-user prerequisites

Install FFmpeg once:

sudo apt update
sudo apt install ffmpeg

Run the packaged app

  1. Download the .AppImage release file.
  2. Make it executable (one time):
chmod +x CodecKoala-*.AppImage
  1. Double-click it in your file manager, or run it from a terminal.
  2. On first launch, use the in-app OpenRouter setup banner to save your API key.

Build an AppImage (developer)

npm install
npm run dist:linux

The AppImage will be created in dist/.

Notes

  • OpenRouter models list endpoint: https://openrouter.ai/api/v1/models
  • OpenRouter chat completions endpoint: https://openrouter.ai/api/v1/chat/completions
  • Settings and history are stored in the app's Electron userData directory.
  • The repository includes .env.example as a template; keep your real .env out of Git.

Scripts

  • npm run dev starts Vite + Electron
  • npm run build builds renderer + main
  • npm run pack:linux packages an AppImage from an existing build
  • npm run dist:linux builds and packages a Linux AppImage
  • npm run lint runs ESLint

Security

  • API key handling stays in the main process and can come from .env or in-app settings.
  • Renderer never receives the raw API key.
  • ffmpeg is spawned with shell: false and args array.

About

CodecKoala turns plain-English video and audio editing requests into safe, validated FFmpeg commands you can review and run locally.

Topics

Resources

Readme

License

MIT license

Code of conduct

Code of conduct

Stars

Watchers

Forks

Packages

Contributors

Languages