/maige

Open-source infrastructure for running natural language workflows on your codebase.

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Maige

Repo maintenance made simpler.

Quickly set up Maige and let AI handle your issue labels with ease. Get started at Maige.app.

Self-Hosting

Note

Self-hosting is not yet supported, but if you're immune to papercuts, feel free to continue at your own risk.

  • Install dependencies: bun i
  • Set up the environment: vercel env pull or cp .env.example .env
  • Start the app: bun run dev
  • Expose the app: in a separate terminal, run ngrok http 3000

GitHub App Integration

Create a GitHub App for webhooks and repo access. Populate your .env with the app details.

  1. Go to Settings (personal or org) > Developer > GitHub Apps

  2. Copy your app name, ID, and client secret. Add these to your .env.

  3. Callback URL: nGrok URL + GitHub auth endpoint eg. https://abc.ngrok.app/api/auth/callback/github

  4. Webhook URL: nGrok URL + handler path eg. https://abc.ngrok.app/api/webhook/github.

  5. Webhook secret: generate this with openssl rand -hex 32. Add it to your .env.

  6. Permissions: toggle Issue: Read & Write and Pull Request: Read & Write.

  7. Events: toggle issues, issue comments, and pull requests.

  8. Private key: generate a private key. Download it. Run the following command (source) to convert it to the right format:

    openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in private-key.pem -out private-key-pkcs8.key

    then copy private-key-pkcs8.key's text contents to your .env.

Environment Variables

We use Infisical for a better development experience. To use it, make an account, upload your .env (then delete it), download and authenticate the CLI, then run bun dx:env [your-environment-name] && bun run dev to develop locally.

Dive In

Access Maige through your nGrok URL and link a test repo. Open an issue to test Maige out!

Try these commands:

  • "maige assign me to this issue"
  • "maige remove all labels from this issue"
  • "maige add the 'self-hosting' label anytime someone mentions 'docker'"
  • "maige what packages does this repo use?"

Enjoy streamlined issue management with Maige! 🚀