<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl" -->

---
title: Coding at the speed of thought: how I talk to Rovo Dev...
description: An Atlassian engineer built a ~300-line Python bridge connecting Rovo Dev CLI (Atlassian's AI coding agent) to Slack, enabling AI-assisted coding without ever...
canonical: https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Coding at the speed of thought: how I talk to Rovo Dev from Slack | daily.dev
og:description: An Atlassian engineer built a ~300-line Python bridge connecting Rovo Dev CLI (Atlassian's AI coding agent) to Slack, enabling AI-assisted coding without ever...
og:url: https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl
og:image: https://api.daily.dev/og/posts/Ft1nzabSL.png
og:image:alt: Coding at the speed of thought: how I talk to Rovo Dev from Slack
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Coding at the speed of thought: how I talk to Rovo Dev from Slack

**[Atlassian](https://daily.dev/sources/atlassian)** · 3 min read · 0 upvotes · 0 comments

## Summary

An Atlassian engineer built a ~300-line Python bridge connecting Rovo Dev CLI (Atlassian's AI coding agent) to Slack, enabling AI-assisted coding without ever opening a terminal. The setup uses `acli rovodev serve` to expose a local HTTP API, Slack Bolt with Socket Mode for message handling, and systemd for auto-start on boot. The bridge POSTs Slack messages to Rovo Dev and streams responses back via SSE. Security is handled by filtering to a single allowed Slack user ID. The result lets the author run file reads, bash commands, Jira queries, git operations, and code generation entirely from Slack.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.atlassian.com/blog/development/rovo-dev-slack-bridge>

## Questions this post answers

### How can I connect Rovo Dev CLI to Slack so I can chat with it without using a terminal?

You can run a local HTTP server with the command acli rovodev serve PORT, which exposes a POST /v3/set_chat_message endpoint to send messages and a GET /v3/stream_chat endpoint that returns responses as a Server-Sent Events stream. A Python bridge using Slack Bolt in Socket Mode can then relay Slack messages to this API and post the collected response back, requiring no public URL or ngrok tunnel.

_daily.dev surfaces practical builds like this for developers wiring AI agents into their daily tools._

### How do I restrict a Slack bot so it only responds to my own messages and ignores everyone else?

Check the Slack event's user field against an allowed user ID stored in an environment variable, and silently ignore the event if it doesn't match. If no ALLOWED_USER_ID is set, the bot processes messages from anyone, so setting this variable is what enforces the single-user restriction in a self-hosted bot.

_developers securing personal AI bot integrations can find similar patterns curated on daily.dev._

## Similar posts on daily.dev

- [Using Rovo Dev in VS Code for Architecting Solutions](https://daily.dev/posts/using-rovo-dev-in-vs-code-for-architecting-solutions-l9rzk7pdx) · Atlassian · 0 upvotes · 0 comments
- [Building on top of Rovo Dev Serve mode: Rovo Dev in the IDE](https://daily.dev/posts/building-on-top-of-rovo-dev-serve-mode-rovo-dev-in-the-ide-xzvv4o9bi) · Atlassian · 0 upvotes · 0 comments
- [Building a Slack-powered AI development agent with Kiro CLI and headless authentication](https://daily.dev/posts/building-a-slack-powered-ai-development-agent-with-kiro-cli-and-headless-authentication-5ll0upu1c) · AWS · 0 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#slack](https://daily.dev/tags/slack)

[View this post on daily.dev](https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Coding at the speed of thought: how I talk to Rovo Dev from Slack","url":"https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl"},"datePublished":"2026-08-05T16:47:00.392Z","dateModified":"2026-09-14T09:12:00.892Z","description":"An Atlassian engineer built a ~300-line Python bridge connecting Rovo Dev CLI (Atlassian's AI coding agent) to Slack, enabling AI-assisted coding without ever...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/502303ccbc56c2bd60abf7308986d8b2?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/502303ccbc56c2bd60abf7308986d8b2?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Atlassian","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Atlassian","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/44750d8e66de4411bb477159b321bb43","url":"https://daily.dev/sources/atlassian"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,slack","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Atlassian","item":"https://daily.dev/sources/atlassian"},{"@type":"ListItem","position":3,"name":"Coding at the speed of thought: how I talk to Rovo Dev from Slack"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/coding-at-the-speed-of-thought-how-i-talk-to-rovo-dev-from-slack-ft1nzabsl#faq","mainEntity":[{"@type":"Question","name":"How can I connect Rovo Dev CLI to Slack so I can chat with it without using a terminal?","acceptedAnswer":{"@type":"Answer","text":"You can run a local HTTP server with the command acli rovodev serve PORT, which exposes a POST /v3/set_chat_message endpoint to send messages and a GET /v3/stream_chat endpoint that returns responses as a Server-Sent Events stream. A Python bridge using Slack Bolt in Socket Mode can then relay Slack messages to this API and post the collected response back, requiring no public URL or ngrok tunnel. daily.dev surfaces practical builds like this for developers wiring AI agents into their daily tools."}},{"@type":"Question","name":"How do I restrict a Slack bot so it only responds to my own messages and ignores everyone else?","acceptedAnswer":{"@type":"Answer","text":"Check the Slack event's user field against an allowed user ID stored in an environment variable, and silently ignore the event if it doesn't match. If no ALLOWED_USER_ID is set, the bot processes messages from anyone, so setting this variable is what enforces the single-user restriction in a self-hosted bot. developers securing personal AI bot integrations can find similar patterns curated on daily.dev."}}]}
```

