Question About Two Apps Showing in Developer Dashboard for Manim Studio

hi anna

facing some confusing error;

as you can see in the developer dashboard it is showing 2 app

Manim Studio (the one we have pushed) and text to animation (is the same app we pushed but when we are developing it is creating another one)

since in our executa.json the tool_id is “tool_id”: “tool-dev-manim-studio”, , in app.json: { “slug”: “manim-studio”, “name”: “Manim Studio”,…}

and in the manifest.json: it is :

“required_executas”: [

{ “tool_id”: “tool-dev-manim-studio” } (we were able to push on the anna store when we deleted this and while running on the local with this tool_id it is showing the (screenshot 2), so we undo it that leads to create new app)

],

let me know what is this happening and why?

Hi dora, thanks for sharing the screenshots and config. I think there are two separate things here.

  1. About seeing two apps in the developer dashboard

If you have ever run anna-app dev locally for an app, Anna will automatically create an app record on the platform for that local development app. So it can appear in the developer dashboard.

My guess is that, during development, you may have run anna-app dev for the text to animation app. If so, seeing it in the dashboard is expected behavior. It does not necessarily mean that an extra production app was published to the store.

As a distinction, when you push an app to the platform with:

anna-app apps push

Anna will create or update a draft version for that app, and the dashboard will show it as working. In your screenshot, Manim Studio has the working status, which matches the expected state after apps push.

  1. About the tool_id binding in manifest.json / executa.json

The current config seems to directly use something like:

"tool_id": "tool-dev-manim-studio"

For this part, I recommend following the bundled Executa binding pattern from the example repo. In other words, instead of hardcoding the final server-side tool_id directly in the app’s manifest.json, use a local bundled handle to bind the app and its bundled Executa.

The recommended structure is roughly:

In app.json, declare the bundled Executa:

"bundled_executas": {
  "manim-studio": {
    "path": "./executas/manim-studio"
  }
}

Then in manifest.json, reference that bundled handle:

"required_executas": [
  {
    "tool_id": "bundled:manim-studio",
    "min_version": "0.1.0",
    "version": "latest"
  }
]

And in the corresponding executas/manim-studio/executa.json, keep the metadata for that Executa itself, for example:

{
  "slug": "manim-studio",
  "name": "Manim Studio",
  "version": "0.1.0",
  "executa_type": "tool"
}

The benefit of this pattern is that bundled:manim-studio is a stable app-local reference. When you run the anna-app apps push / publish flow, the CLI/platform will resolve that bundled handle into the real server-generated tool_id. This helps avoid confusion between local dev apps, pushed apps, and server-side Executa IDs.

For more complete details, I recommend checking these two tutorial posts. They walk through the full flow from app creation and local dev to push, bundled Executa packaging, and release:

So in short: the text to animation entry in the dashboard was most likely created by a previous local anna-app dev run, which is normal. For Manim Studio, I suggest switching to the bundled:<handle> binding pattern used in the examples, so the later push / publish flow is more stable and less likely to run into ID confusion.