Inspiration
Lots of helpful work starts with something happening in the real world—a new ticket, a message, an update—not when someone remembers to open an app and click “Go.” We wanted coding helpers to wake up when events happen, while still fitting into tools people already use (like Composio and Pi).
What it does
Think of Constellagent as the dashboard where you tune your automations: which coding helper runs, and what instructions it gets.
Automation definitions now live in one familiar place on your computer (the same file Pi uses by default)—not scattered as separate little files inside each code project—so Constellagent and Pi stay in sync. If you haven’t wired a workspace path explicitly, we still try to figure out which local project a row belongs to by matching sensible clues (like repo name patterns).
Signing in reliably matters: you can drop your Composio key in a simple local settings file (COMPOSIO_API_KEY), and Constellagent will prefer fresh keys over old saved ones so you aren’t stuck with mysterious “nothing works until I fiddle with settings.”
How we built it
We wired the app so it reads Pi’s shared automation list first, edits that same list when you change toggles or prompts in the UI, and loads local secret keys safely—available to the backstage part of the desktop app only, not the visible web-like screen—so secrets don’t accidentally leak everywhere.
Copy in the Automations panel was updated so people see the truth about where edits are saved—no misleading “every repo has its own file” story anymore.
Challenges we ran into
Ownership is fuzzy. Apps like Pi label things as “GitHub Org / Project”; your disk just has folders with names like billing. Connecting those two worlds without bothering you constantly is fiddly—especially when you have multiple folders with similar names.
Keys get stale. People log in elsewhere, paste a key weeks ago into settings, hit “Save,” and blame the automation. Fixing that meant changing the priority order: trust the freshest, obvious sources before old saved blobs.
Accomplishments that we're proud of
- Single source of truth with Pi for automation definitions—with an override path when power users want it.
- Smoother troubleshooting around Composio sign-in compared to silently using an outdated saved key.
- Clear messaging about where edits go, so nobody hunts the wrong folder.
What we learned
“Event automation” feels simple in a demo—“when X happens, do Y”—but quietly it’s lots of coordination: triggers, identities, workspaces, folders, secrets. Tiny friction anywhere (wrong file, wrong folder guess, stale key) shows up as “the agent never woke up.” Teaching the machine which rule belongs to which project is surprisingly human-centric work.
What's next for event automations
- Ask plainly when the app genuinely can’t tell which local copy of a repo you mean, instead of guessing quietly.
- Status lights: “Triggers ready / needs connection / webhook not set”—so fixes are obvious, not archaeology.
- Gentler upgrades if some teams still rely on older per-project files for a while.
- Better context feeding the assistant when safe—so triggers feel less like a ding and more like a useful briefing.
Built With
- bun
- composio
- electron
- pi
- react
- typescript
Log in or sign up for Devpost to join the conversation.