askey is a SvelteKit-powered app that turns any static or animated image into high-fidelity ASCII art. Upload GIFs, APNGs, PNGs, or JPEGs, tweak pro-level tone controls, and export the result to TXT, SVG, PNG, WebP, GIF, APNG, or JSON for the askey-player.js runtime.
You can export animations in a .askey format and play it everywhere in the web with the companion askey-player.js or run it in the terminal using the cli tool.
- Offline-ready PWA.
- Animated input support with adjustable frame limits, skip rates, and playback speed.
- Control over gradients, brightness/contrast and more...
- Background color picker.
- One-click exports to TXT, SVG, PNG, WebP, GIF, APNG, or JSON for animations.
| Init | ASCII Conversion |
|---|---|
# 1. Install dependencies
npm i
# 2. Start the dev server (http://localhost:5173)
npm run dev
# 3. Run the full type + lint suite (optional)
npm run check && npm run lintThe dev server hot-reloads when you edit files inside src/. Use npm run check -- --watch for incremental accessibility + type checks while iterating on components.
npm run check– type and accessibility safety net.npm run lint– ESLint + Prettier formatting.npm run build– emits optimized client, server, and service worker bundles.npm run test- Run test suites.- Deploy the adapter output (
.vercel/output,.netlify, orbuild) to your host of choice.
- "Universal" export file for ASCII animations.
- Offline support with service workers.
- C# terminal player for
.askeyfiles. (see: askey-cli) - Implement dithering algorithms options.
- Fix render bug in certain animations with certain backgrounds/complex color combinations.
- Increased test coverage.
- Animated WebP support.
- Video support maybe?
- Build a site to share and download asꄗ animations.
A .NET CLI tool will be available to run ASCII animations directly in the terminal using exported .askey files.
- SvelteKit 2 with Vite 7
- TypeScript 5 + ESLint 9 + Prettier 3
- Custom service worker for offline caching
- Fork and clone the repo.
- Create a feature branch off
main. - Add or update tests for your change when possible.
- Run
npm run lint && npm run check && npm run test. - Open a PR with screenshots or GIFs for UI tweaks.
Have ideas for effects, exporters, or any other feats? Open an issue and describe the use case!
This project is licensed under the MIT License - check LICENSE for details.