Skip to content

Kyonru/feather

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

217 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Feather 🪶 — Debug & Inspect Tool for LÖVE (love2d)

Feather is a real-time debugging and inspection tool for LÖVE games — like Flipper or React DevTools, but for your game. Inspired by LoveBird.

📖 Documentation · Releases · Changelog · Contributing


Features

  • 📜 Live log viewer — See print() output instantly in the app.
  • 🔍 Variable inspection — Watch values update in real-time.
  • 🚨 Error capturing — Automatically catch and display errors.
  • 📸 Screenshots & GIF capture — Capture and record via the built-in plugin.
  • 🔌 Plugin system — +18 built-in plugins + custom ones. Server-driven UI: plugins define their actions in Lua, the desktop renders them automatically.
  • 📱 Multi-session support — Connect multiple games simultaneously.
  • 📲 Mobile debugging — Auto-detected local IP in Settings with copyable connection string.
  • 💻 Console / REPL — Execute Lua code in the running game (opt-in, requires apiKey).
  • 🐛 Step Debugger — Breakpoints, step over/into/out, call stack, local variable inspection.
  • 📁 Log file viewer — Open .featherlog files for offline inspection.
  • 🖥️ CLI-first setupfeather init, feather run, and feather remove manage the debugger lifecycle.
  • Guarded in-game setup — Generated imports load only when USE_DEBUGGER is enabled.

log tab performance tab observability tab


Quick Start

Install the CLI, initialize your game, then run with USE_DEBUGGER=1 when you want Feather loaded:

npm install -g @kyonru/feather
feather init --mode cli
feather run path/to/my-game

For games running in an external device (iOS, Android, SteamDeck, etc), you need to include feather in the source code. Checkout the documentation for good practices and worfklow recommendations.

feather init path/to/my-game
USE_DEBUGGER=1 love path/to/my-game

feather init creates a feather.config.lua file for project settings:

return {
  sessionName = "My Game",
  -- For phones, tablets, Steam Deck, or another computer, set this to
  -- the desktop app machine's LAN IP.
  -- host = "192.168.1.50",
  -- include = { "console" },
  -- exclude = { "hump.signal", "lua-state-machine" },
}

Generated code always uses DEBUGGER safely:

function love.update(dt)
  if DEBUGGER then
    DEBUGGER:update(dt)
  end
end

For production cleanup:

feather remove --dry-run
feather remove --yes

Then download the desktop app from the releases page.


Documentation


Built-in Lua Dependencies


Credits


License

DISCLAIMER: The license only applies to products that directly replicate the logic/purpose of this tool. It does not apply to games created using it as a dev tool.

See LICENSE.md.

AI Usage

The architecture and planing of this tool has been made by me, I take a lot of my time and effort to put on this tool, mostly because it helps my development experience with Love2D. Once i had the plugin system in place, using AI for autocompletion has allowed for fast plugin development, and fix my poorly written rust code.

Code is curated and carefully revised by me. While I don't think there is need to explain this, i understand some people might not feel comfortable with AI in any form. I respect that.