flame_cli: Features for humans and AI coding agents
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
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
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 registeredgetComponentCount,getImageCacheandevictUnusedImagesextensions, together with FPS and frame times, with a--watchmode -
flame stop: stop the game thatflame runstarted -
flame status: report whether a game is running for the project, and where -
--jsonoutput on every command, not onlytreeandinspect - 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 --annotatethat draws bounding boxes and ids onto the image, so that a vision model can match what it sees with thetreeoutput -
flame snapshot --max-sizeto keep images within model limits -
flame waitthat 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.yamlor 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 createwrites anAGENTS.md(or a skill file) that explains the run, snapshot, tree and input loop - Determinism controls: a fixed
dtforstep, 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
debugPropertiesmap that components can override), so thatinspectandsetcan reach game specific state like health, score and velocity - Find components by
ComponentKeyor name, giving ids that are stable across restarts - Add and remove components from the CLI
- Camera control:
flame camera move,zoomandfollow <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 recordandflame replayof inputs, to reproduce bugs and to hand repro steps to an agent
Human workflow
- Golden checks:
flame snapshot --compare expected.png --threshold 0.01that exits with a non-zero code on mismatch, building on the existing diff code -
flame run --watchthat 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 upgradewith 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
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de flame-engine/flame
-
[flame_3d] Object3D.isVisible only checks the center point, so partially visible objects are not drawnPosiblemente ocupada @ufrshubham la tomó hace 1 día. Abiertobug flame_3d
flame-engine/flame#4166 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[flame_3d] Nested Object3D without computeLocalAabb is culled using its local positionPosiblemente ocupada @ufrshubham la tomó hace 1 día. Abiertobug flame_3d
flame-engine/flame#4165 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[flame_3d] Children added to an Object3D after it was rendered can be culled while on screenPosiblemente ocupada @ufrshubham la tomó hace 1 día. Abiertobug flame_3d
flame-engine/flame#4164 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[flame_3d] Nested components are culled at their old position after an ancestor movesPosiblemente ocupada @ufrshubham la tomó hace 1 día. Abiertobug flame_3d
flame-engine/flame#4163 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
flame-engine/flame#4157 ·
Los mantenedores suelen responder en 1 día
Todos los issues de flame-engine/flame
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 5 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 4 días
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
Los mantenedores suelen responder en 3 días
-
area-clientside-dartpad
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 2 días
-
'图片收藏'功能无法滑动Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
venera-app/venera-prime#50 ·