Get started

From your Telegram group to a first pull request

Add the bot to your group, type /setup, and tap through five short steps. No server to run, and your code stays in your own GitHub.

What you need

A Telegram group

Where your team gives tasks and approves plans.

A GitHub repo

One you're an admin of, with GitHub Actions enabled.

An AI login

An Anthropic or OpenAI API key, or your own Claude Pro/Max or ChatGPT subscription.

Step 1: Create the GitHub App

Add @crewlineai to your group and type /setup. A repo admin should do this. Tap Create GitHub App and GitHub asks you to confirm. That's it.

Step 2: Install it on your repos

Choose the repos the crew should work on, and only those. They connect to the group automatically.

Step 3: Everyone links GitHub

Each teammate taps Link GitHub. The bot opens a private chat with a Continue with GitHub button; approve once on GitHub. Roles come from your GitHub permissions, and anyone who hasn't linked is ignored.

Step 4: Add the workflow and an AI login

Tap the link and GitHub opens with the workflow file ready to commit. Then pick how your agent logs in: an API key (optionally through the key proxy with a per-run budget), or your own Claude or ChatGPT plan.

For your Claude plan: /persona add toni-max claude subscription, run claude setup-token on your computer and save the token as the repo secret CLAUDE_CODE_OAUTH_TOKEN_TONI_MAX. Your plan stays yours: it only runs your tasks, in the sandbox.

Step 5: Give your first task

Type /task and what you want done. Your agent posts a short plan, a maintainer taps Approve, and a pull request lands in the chat. A human always merges.

Chats are illustrations; the bot's exact wording may differ.

Troubleshooting

The bot doesn't answer

Make sure /setup was run by an admin of the repo, and that you've tapped Link GitHub yourself. Only linked teammates can give tasks, and the bot only reacts to commands like /task, not to ordinary messages.

The workflow didn't start

Check that .github/workflows/crewline.yml exists on the default branch (the link from step 4 creates it) and that GitHub Actions is enabled for the repo under Settings โ†’ Actions.

The agent can't log in

Check the persona's secret name. For a subscription persona it's the persona name in capitals with dashes turned into underscores, for example CLAUDE_CODE_OAUTH_TOKEN_TONI_MAX or CODEX_AUTH_JSON_LENA_CODEX. For API keys it's ANTHROPIC_API_KEY or OPENAI_API_KEY. If a subscription login expired, log in again and update the secret.

I'd rather host it myself

You can. Follow the manual / self-hosted setup; everything is open source.

Ready when your group is.

Five taps from /setup to your first task.