DevFlow – Build Anywhere with GitHub Copilot CLI

This is a submission for the GitHub Copilot CLI Challenge

What I Built

I built DevFlow – a tool that lets me control GitHub Copilot CLI on my development machine from anywhere via Telegram or Slack.

The problem: AI coding tools are getting really capable, but there’s a fundamental limit: you need to be physically present. If your development environment is on your local machine and you’re not on it, you can’t access your AI tools like Antigravity or Claude Code.

Also, if you SSH into a remote server or VPS, you still need to manually run commands, navigate the codebase, and execute everything yourself.

The solution: Install DevFlow on your PC, VM, or VPS. Send natural language commands from Telegram or Slack. DevFlow spins up Copilot CLI sessions locally and executes your tasks while streaming progress back to your chat.

Why existing tools fall short: I use AI coding tools like Trae, Kiro, Antigravity, and Zed—these have excellent in-editor agents but are confined to the IDE. I’ve also worked with Gemini CLI and Warp. CLI agents aren’t locked to an editor, which is powerful, but you still need terminal access. DevFlow removes that constraint entirely.

Example workflow:

Send this in Telegram:

Update the README to reflect the current state of the project

DevFlow responds:

Task created and dispatched to agent-e4425f98. The agent will pick it up shortly. 🚀

🔄 Update: update README
⏳ Starting feature implementation workflow
[▪▪▪▪▪▪▪▪▪▪] 3%

Meanwhile, on your machine, Copilot CLI analyzes the codebase, updates the README, and commits the changes. You get real-time progress updates in Telegram.

Key Features:

  • 🤖 Copilot CLI Integration: Uses GitHub Copilot CLI and SDK to intelligently execute coding tasks
  • 🔒 Local Execution: Code never leaves your machine—the agent runs locally
  • 📱 ChatOps: Send commands via Telegram or Slack (!fix, !feature, !explain, !review-pr)
  • ⚡ Real-time Updates: Streaming progress back to your chat
  • 🔐 Secure: Encrypted credentials, fine-grained permissions, no code exfiltration

Tech Stack:

  • GitHub Copilot CLI & SDK (@github/copilot-sdk)
  • Next.js (web platform), Node.js + TypeScript (agent CLI)
  • Telegram Bot API, Slack API, GitHub API
  • Monorepo: apps/web (dashboard) + apps/agent (agent CLI)

Demo

🌐 Live Platform: https://devflow.aevr.space/

📦 NPM Package: @untools/devflow

💻 GitHub Repository: miracleonyenma/devflow

How It Works

1. Set up your account and channels

Setting Up DevFlow

  • Install the GitHub App on your repositories (for notifications like push, PRs, deployment from enabled repos)

Setting Up DevFlow

  • Connect Telegram: Go to Settings → Notification Channels → Add Telegram

Setting Up DevFlow

- For personal DM: Visit [@thedevflowbot](https://t.me/thedevflowbot)
- For group chat: Add the bot and send `/start channel_[ID]`

Setting Up DevFlow

2. Install the tools on your machine

# Install GitHub Copilot CLI first
npm install -g @github/copilot

# Authenticate with GitHub
copilot

# Install DevFlow agent CLI
npm install -g @untools/devflow

3. Initialize your agent

Navigate to a project and run:

devflow init

This opens your browser to authenticate and configure the agent:

🚀 DevFlow Agent Initialization

📍 Platform URL: <https://devflow.aevr.space>
⏳ Starting authentication flow...
🌐 Opening browser for authentication...

✓ Authentication successful!
✓ Agent ID: agent-f27953dd-eef2-41fb-9b2a-deba66ecbbe7

📝 GitHub Personal Access Token Required
   Create one at: https://github.com/settings/personal-access-tokens
   Required scopes: copilot, repo

Enter your GitHub Personal Access Token: ****

✓ Saved configuration to ~/.devflow/config.json

📋 Configuration Summary:
   Agent: agent-54c6fe56
   Platform: <https://devflow.aevr.space>

🚀 Next Step: devflow start

Setting Up DevFlow

Note: Use a fine-grained token with only “Copilot” access. You can also store this in DevFlow’s encrypted credentials settings.

Setting Up DevFlow

4. Start the agent

devflow start
🚀 DevFlow Agent Starting

✓ Connecting to platform...
✓ Agent online: agent-f27953dd-eef2-41fb-9b2a-deba66ecbbe7
✓ Listening for commands...

Setting Up DevFlow

5. Send commands from Telegram

First, check your connected agents:

/agents

Response:

🤖 Connected Agents (2/2)

🟢 agent-0dc45556 (agent-d8)
   Platform: darwin | v0.1.0
   Last seen: 1/29/2026, 3:53:04 PM

🟢 agent-8ca7ec19 (agent-e4)
   Platform: darwin | v0.1.0
   Last seen: 1/29/2026, 3:55:26 PM

Setting Up DevFlow

Then send a task:

Update the README to reflect the current state of the project

You’ll get real-time updates as Copilot CLI works:

Setting Up DevFlow

Real-time task execution in Telegram showing progress updates

After the task is complete, you should get a notification as well (forgive the poor formatting):

Setting Up DevFlow

Now, you can check for changes in your project like I did with git status:

➜  trivia git:(main) ✗ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md

Check the dashboard to see task history:

Setting Up DevFlow

DevFlow dashboard showing task details, agent info, and execution timeline

Example Commands

Update the README to reflect the current state of the project
Fix the navbar overlapping issue on mobile
Add dark mode toggle to settings
Explain the authentication flow in auth.ts
Review PR #42 and suggest improvements

Video Walkthrough

My Experience with GitHub Copilot CLI

Why I Built This

I had an existing project called “Pinga” that routed GitHub notifications to Telegram and Slack. When I saw the GitHub Copilot CLI Challenge on DEV.to (January 23, 2026), I thought it’d be nice to build a productivity tool with Copilot CLI that lets me use Copilot CLI remotely to build other stuff. Meta, but useful.

Setting Up the Architecture

I needed a monorepo with:

  • apps/web: Dashboard for user accounts, GitHub/Telegram/Slack connections
  • apps/agent: NPM package for the agent CLI

First mistake: I didn’t explain the architecture clearly in my prompts. Copilot CLI created a separate Express server (apps/agent-host) and put all the integration logic there. After using it for a bit, and getting silent errors, I realized this was unnecessary. The CLI tool should handle everything directly—poll for tasks, initialize Copilot sessions, execute workflows. So I asked Copilot to fix this. We moved the integration into @untools/devflow .

Lesson: When working with AI agents, be explicit about your system architecture upfront.

After refactoring, I hit another frustrating problem. The agent would:

  1. ✅ Poll successfully
  2. ✅ Receive tasks
  3. ✅ Initialize Copilot CLI
  4. ❌ Fail silently

No errors. No logs. Just silent failures. My task queue filled up with pending tasks that weren’t completing.

The Fix

After some debugging, I later realized it was an authentication problem, in the Copilot CLI docs, you will find that you can authenticate using a Personal Access Token (PAT). I was using a Classic GitHub PAT instead of a Fine-grained PAT.

Switched to fine-grained tokens with the correct scopes, and everything worked immediately.

This prompted me to add BYOK (Bring Your Own Key) to both the dashboard and CLI. Users can now provide their own GitHub PAT and Groq API key. I recommend using the CLI to add credentials (encrypted storage), but you can also add them through the dashboard.

What Makes Copilot CLI Different

1. Build Verification

I noticed that when working with projects that require builds, Copilot CLI attempts to build your project after making changes before marking a task complete. This means fewer syntax errors and TypeScript issues in the final output. When it says “done,” you can trust it.

2. Session Resumption

After a session ends, you get a session ID:

Resume this session with: copilot --resume=6f0af322-662a-4367-bfc6-74cc293c5c28

I love this, you can pick up exactly where you left off after ending a Copilot CLI session.

3. Expanded Mode

Toggle expanded mode with ctrl + o to see:

  • The agent’s thought process
  • File contents being examined
  • Real-time command outputs

Great for debugging and understanding what’s happening.

4. Actually Completes Tasks

Copilot CLI:

  • Analyzes codebase architecture
  • Makes informed decisions about where changes belong
  • Follows existing patterns
  • Tests changes when possible
  • Handles edge cases

It feels like pair programming with someone who knows the codebase.

What’s Next

DevFlow is functional and I’m using it daily. Still adding features before the February 15 deadline:

  • Better error handling
  • More workflow types (deployment automation, enhanced code reviews)
  • Improved session management for long-running tasks
  • Better GitHub Issues/PRs integration

I used Copilot CLI to build a tool that lets me use Copilot CLI on any machine from anywhere. That recursive productivity loop is exactly what makes AI-assisted development exciting.

Built with: GitHub Copilot CLI, GitHub Copilot SDK, Next.js, Node.js, TypeScript, Slack API, Telegram Bot API

Live at: devflow.aevr.space

Source: github.com/miracleonyenma/devflow

Package: @untools/devflow

Leave a Reply