Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

flame_cli: Features for humans and AI coding agents

Aperta
#4,131 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Attiva
Stack tecnologico
dart, flutter
Ambito
cli, game-dev, tooling

Direzione di ricerca

Start in the flame_cli package where subcommands like run, tree and inspect are defined. The game side already exposes getComponentCount, getImageCache and evictUnusedImages extensions; wire them into a new flame stats command. Pick one checkbox, such as flame stop or --json on all commands, and add tests for the new flag or command.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement
Problem to solve

flame_cli can already observe, change and play a running game, but several workflows are still hard or impossible, both for humans and for AI coding agents driving the game from the terminal. Agents in particular struggle with mapping pixels to world coordinates, parsing prose output, timing, and keeping track of background processes.

Proposal

A list of features that would make the CLI more useful. They can be split into separate PRs.

Cheap wins (the game side mostly exists already)
  • flame stats: expose the already registered getComponentCount, getImageCache and evictUnusedImages extensions, together with FPS and frame times, with a --watch mode
  • flame stop: stop the game that flame run started
  • flame status: report whether a game is running for the project, and where
  • --json output on every command, not only tree and inspect
  • Machine readable errors (code and message) and stable, documented exit codes
For AI coding agents
  • Target components instead of coordinates, for example flame input tap --component <id> tapping the center of the component, also by key or type
  • flame snapshot --annotate that draws bounding boxes and ids onto the image, so that a vision model can match what it sees with the tree output
  • flame snapshot --max-size to keep images within model limits
  • flame wait that blocks until a condition holds (a component of a type exists, an overlay is shown, a property reaches a value) or a timeout is reached
  • Batch and scripted scenarios, for example flame script steps.yaml or commands from stdin, to run pause, input, step, snapshot and assertions in one call
  • flame mcp, an MCP server exposing the same operations as tools and returning snapshots as inline images
  • flame create writes an AGENTS.md (or a skill file) that explains the run, snapshot, tree and input loop
  • Determinism controls: a fixed dt for step, a time scale option, and a random seed hook
Richer inspection and mutation
  • Generic properties through an opt in hook in the game (for example a debugProperties map that components can override), so that inspect and set can reach game specific state like health, score and velocity
  • Find components by ComponentKey or name, giving ids that are stable across restarts
  • Add and remove components from the CLI
  • Camera control: flame camera move, zoom and follow <id>
  • Show hitboxes and collisions, active effects, Forge2D bodies and Tiled layers in inspect
Input coverage
  • Long press and double tap
  • Hover and mouse move
  • Scroll and scale (building on the trackpad scale support from #4110)
  • Multi touch
  • Holding a key for a duration, and key combinations
  • flame record and flame replay of inputs, to reproduce bugs and to hand repro steps to an agent
Human workflow
  • Golden checks: flame snapshot --compare expected.png --threshold 0.01 that exits with a non-zero code on mismatch, building on the existing diff code
  • flame run --watch that hot reloads when files are saved
  • Generators, for example flame generate component Player (and scenes, effects) following the template conventions
  • Asset tooling: list assets, find missing or unused ones, check the pubspec entries, and possibly pack sprite sheets
  • flame upgrade with migration fixes across major Flame versions
  • Recording the game to a GIF or a frame sequence
  • Shell completion
  • An interactive REPL attached to the running game
More information

Suggested starting points with the highest value: component targeted input, flame wait, --json everywhere with structured errors, flame stop and flame status, and annotated snapshots. Together they turn the CLI into a loop that an agent can drive reliably.

Lingua principale
Dart
Stelle
10.8k
Fork
1.1k
Merge medio
1g 14h
PR unite (30g)
62

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di flame-engine/flame

Tutte le issue di flame-engine/flame

Issue simili

Altre issue su Dart

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.