Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

flame_cli: Features for humans and AI coding agents

Abierto
#4,131 0 comentarios 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
dart, flutter
Área
cli, game-dev, tooling

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Dart
Estrellas
10.8k
Forks
1.1k
Merge medio
1 d 14 h
PR fusionados (30 d)
62

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de flame-engine/flame

Todos los issues de flame-engine/flame

Issues similares

Más issues de Dart

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.