Describe it.
Animate it.

Generate production-ready Lottie animations from your terminal, or search and remix from 122K+ community animations on the LottieFiles marketplace. Uses your existing Claude or Codex subscription. No credits, no editors.

$ npx @afromero/kin3o generate "button" --interactive
Prompt "5-bar audio waveform in amber"
Output valid JSON · 5 layers · 60fps

Real output, zero editing

Every animation on this page was generated by kin3o. No After Effects. No designers.

One command,
motion + interaction

Describe the animation. kin3o generates validated JSON and opens a live preview. Drop the file into any frontend.

  • React — lottie-react
  • Web — lottie-web
  • iOS — lottie-ios
  • Android — lottie-android
$ npx @afromero/kin3o generate "notification bell that shakes"

  Provider: Claude Code (sonnet)

  ✓ Generated in 21.3s
  ✓ Valid Lottie JSON
  ✓ output/notification-bell.json
Format
Lottie JSON
Layers
1 shape
Frames
180 @ 60fps
Size
2.1 KB
Drop into any frontend
import Lottie from 'lottie-react'
import bell from './bell.json'

export function Bell() {
  return (
    <Lottie
      animationData={bell}
      loop
      autoplay
    />
  )
}
<div id="bell"></div>

<script>
  lottie.loadAnimation({
    container:
      document.getElementById('bell'),
    path: './bell.json',
    loop: true,
    autoplay: true
  })
</script>
import Lottie

let bell = LottieAnimationView(
  name: "bell"
)
bell.loopMode = .loop
bell.play()

view.addSubview(bell)

State machines,
from text

Generate interactive animations with hover, click, and tap states — all from a single prompt.

$ npx @afromero/kin3o generate "toggle switch" --interactive

  ✓ Extracted 3 animations: idle, hover, pressed
  ✓ State machine valid
  ✓ Written to toggle-switch.lottie
$ kin3o generate "button that glows on hover and shrinks on press" --interactive
idle hover pressed
$ kin3o generate "human stick figure that walks on hover and runs on press" --interactive
standing walking running
LottieFiles integration

Search, download, publish

Browse 122K+ community animations on the LottieFiles marketplace. Download, remix with AI, and publish back — all from your terminal.

search download refine publish
$ kin3o search "loading spinner"
 
kin3o — Searching LottieFiles...
Found 847 animations for "loading spinner"
 
$ kin3o download abc12345
Downloaded: Spinner Dots by @designer
Written to output/spinner-dots.json

Choose the right tool

Great animation tools exist for different workflows. Here's where kin3o fits.

kin3o is great for
  • Generating animations from your terminal with AI
  • Interactive state machines from a text prompt
  • Using your existing Claude or Codex subscription
  • Git-friendly JSON output — diffable and reviewable
  • Customizable system prompts and design tokens
  • Search, download, and publish to the LottieFiles marketplace
  • Works with the Lottie ecosystem — React, iOS, Android, After Effects

FAQ

Common questions about kin3o.

Prompting an LLM for Lottie JSON is only the first 20% of the work. kin3o handles everything else: system prompts tuned for the Lottie spec, few-shot examples so the model doesn't hallucinate layer types, JSON extraction from markdown-wrapped output, structural validation, auto-fix for common AI mistakes (0-255 colors, missing fields, invalid keyframes), dotLottie packaging for interactive state machines, live preview, and marketplace integration. You'd have to build and maintain all of that yourself.
kin3o itself is free and open-source (MIT). It uses your existing Claude Code or Codex subscription to generate animations — no separate API keys, credits, or accounts needed. If you prefer direct API access, you can use an Anthropic API key instead.
Three providers, auto-detected in order: Claude Code CLI (uses your active session), Codex CLI (OpenAI's terminal agent), and the Anthropic API (requires an API key). kin3o picks the first available provider, or you can choose one explicitly with --provider.
Yes. Every generated file is validated against the Lottie spec before it's written to disk. Common AI mistakes — like RGB values in 0-255 instead of 0-1, missing version fields, or malformed keyframes — are auto-corrected. The output is standard Lottie JSON that works with lottie-web, lottie-react, lottie-ios, and lottie-android with no modifications.
Yes, two ways. Use kin3o refine output/file.json "make it faster" to send the current animation back to AI with your instructions — it outputs a versioned file (e.g. anim-v2.json). Or edit the JSON directly — it's a standard, documented format that works in After Effects, LottieFiles editor, or any text editor.

Start generating

$ npx @afromero/kin3o generate "loading spinner"

GitHub · LottieFiles · MIT License · Built with Claude