flame_cli: Features for humans and AI coding agents
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
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
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.
- Lingua principale
- Dart
- Stelle
- 10.8k
- Fork
- 1.1k
- Merge medio
- 1g 14h
- PR unite (30g)
- 62
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di flame-engine/flame
-
[flame_3d] Object3D.isVisible only checks the center point, so partially visible objects are not drawnForse già presa @ufrshubham l’ha presa 1 giorno fa. Apertabug flame_3d
flame-engine/flame#4166 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[flame_3d] Nested Object3D without computeLocalAabb is culled using its local positionForse già presa @ufrshubham l’ha presa 1 giorno fa. Apertabug flame_3d
flame-engine/flame#4165 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[flame_3d] Children added to an Object3D after it was rendered can be culled while on screenForse già presa @ufrshubham l’ha presa 1 giorno fa. Apertabug flame_3d
flame-engine/flame#4164 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[flame_3d] Nested components are culled at their old position after an ancestor movesForse già presa @ufrshubham l’ha presa 1 giorno fa. Apertabug flame_3d
flame-engine/flame#4163 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
flame-engine/flame#4157 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di flame-engine/flame
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 4 giorni
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
I maintainer di solito rispondono entro 3 giorni
-
area-clientside-dartpad
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 2 giorni
-
'图片收藏'功能无法滑动Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
venera-app/venera-prime#50 ·