I kept finding myself writing scripts or manually running prompts to do things like PR reviews, documentation generation, or issue triage on my GitHub repositories.
After doing this enough times, I decided to build a small platform to automate these workflows.
I recently open sourced it:
https://github.com/Njuelle/Codaholiq
Codaholiq lets you run AI-powered workflows triggered by GitHub events.
You connect a repository and define automations that run when certain events occur, such as:
- pull request opened - push to a branch - issue created - cron schedule - manual trigger
Each automation defines:
- a trigger - an AI provider or model (Claude Code, Codex, Gemini, etc.) - a prompt template - optional conditions on the GitHub event payload
When the event happens, Codaholiq renders the prompt using variables from the event context and dispatches a GitHub Actions workflow that runs the AI task.
The platform also tracks executions with:
- real-time log streaming - token usage and cost tracking - execution history
One design goal was self-hosting, so the entire platform can run locally or on your own infrastructure.
The architecture is intentionally simple:
- GitHub webhooks trigger automations - jobs are queued using Redis and BullMQ - the NestJS backend processes the queue and dispatches workflows to GitHub Actions - AI models are called through providers - logs and token usage are streamed back to the UI
The full platform can run with Docker using Postgres and Redis.
Example automation:
An automation could trigger when a pull request is opened. It sends the PR diff to an AI model asking for a code review, then runs the task through a GitHub Actions workflow.
Some possible use cases:
- automated PR reviews - generating documentation from diffs - code refactoring suggestions - issue triage - automatic changelog generation
It's still early, but the core pieces are working.
One thing I'm unsure about is whether this project makes more sense as:
- a self-hosted automation tool - or a hosted version that simplifies setup and management
I'm curious how teams here would prefer to run something like this.
Any feedback is very welcome.