Hey everyone! This post is about, Sidequestor is a tool I built in the course of my work at Circle. I thought it might be useful to others who live in Slack and use harnesses like Codex for a lot more than coding, and I’d also like to get some feedback/tips on how to develop this further.
Sidequestor takes your existing local Codex setup (e.g. skills, MCP connections, files, and instructions) and gives it ongoing responsibilities through quests. Each quest describes what you want accomplished and which sources Codex should watch: Slack channels and threads, GitHub issues and PRs, Jira tickets, or other updates.
Whenever a poll returns an update (e.g. new message, comment, ticket), Sidequestor wakes Codex with the relevant context so it can take the next step and keep following the work over hours or days. It works through your own connected accounts and permissions, including reading and responding on your behalf where authorized. Your local skills, instructions and quest context guide its judgment and when it should involve you (the human).
The focus is preserving the Codex environment you already use and adding persistent follow-through. You and the background worker share a local workspace, so you can inspect files, adjust instructions, or step in through an interactive session.
Here are some quest types I run at work that have saved me dozens of hours:
- Supporting customer integrations: following conversations, responding on my behalf, reproducing problems with test API keys, and working with colleagues to get issues resolved.
2. Following cross-functional issues: reading technical documentation, testing API behavior, raising tickets or Slack threads to clarify expectations, and following up with the people involved.
3. Monitoring updates: watching Slack channels for specific topics and notifying me or relevant colleagues when something needs attention.
The watchers poll without LLM calls. When they detect a relevant change, Sidequestor starts Codex headlessly with the quest’s context. Codex evaluates the update, performs any necessary work, and updates what the quest should watch next. Model usage happens when Codex runs.
I’d like to build more directly on Codex and maintain less infrastructure around it. Right now, Sidequestor handles installation and updates, background processes, watcher authentication, dispatch, logs, and diagnostics. That creates substantial distribution, testing, and troubleshooting work alongside the quest functionality itself.
Ideally, this could attach to Codex as a plugin or supported extension, reusing as much of its environment, connector authentication, execution lifecycle, and distribution infrastructure as possible. I’d like users to get persistent quests without maintaining another loosely connected stack.
I see related capabilities in scheduled tasks and app-event triggers (too expensive to run every minute) and the plugin system (unclear how it would interact with local file systems). I’d appreciate guidance on a few questions:
- Could a plugin manage persistent quests while external events triggers or resume work in the user’s existing local Codex environment?
- Could watchers reuse existing authorized connector access rather than requiring separate authentication?
- Which parts of installation, updates, background execution, and diagnostics could Codex handle, and what would still need a separate service?
- Can we build and serve custom interfaces and dashboards for plugins?
I’m happy to adapt Sidequestor’s architecture to fit a supported integration path. Longer term, I’d love to contribute toward this becoming a native Codex workflow; a well-integrated plugin would be a useful starting point.
The current version is macOS-only and requires an authenticated Codex CLI plus Slack app setup. Unattended workers need permission to execute tools without interactive approval. Your Mac also needs to stay awake and connected (Iuse caffeinate). Current installation happens through:
pip install sidequestor
Implementation suggestions, questions, and bug reports welcome. I’d also love to hear what ongoing work you’d turn into a quest!