iTranslated by AI
The content below is an AI-generated translation. This is an experimental feature, and may contain errors. View original article
🤖
Transforming Cline into Devin: A Proof of Concept for Slack Integration
Done and Todo
What's working
- Receiving user responses via Slack
- Sending /approve and /reject commands from Slack
- Threads are separated by task, allowing multiple tasks to be used independently
- Initial task submission from Slack (Omitted for now as it was tedious, though methods are available and it's straightforward) (Updated 1/15)
What's not yet done
- Processing for commands other than /approve and /reject
- Formatting of user responses
- Implementing WebSockets etc., as thread monitoring currently uses brute-force polling
Repositories Verified
Execution Example (Apologies for the rough presentation)

Implementation Strategy
- Initially, I tried to integrate Slack's Bolt and run it.
- While the startup seemed to work fine, other parts were too tightly coupled, making it look difficult.
- I found that calling MCP internally made the responses work well.
Commit Description
cleanupMessageForSlack is not performed, a lot of noise-like data gets included, so I temporarily removed all the JSON (this needs to be fixed as it prevents some data from being received).
Monitoring threads with polling every 3 seconds; this watchThreadReplies is discarded when the task ends.
It handles responses via handleWebviewAskResponse based on the thread content.
Thoughts
While achieving Devin-level autonomy might be difficult, if a workflow is properly constructed in the layer above this,
I felt that you could build it yourself without having to pay $500.
By the way, I haven't written a single line by hand. Long live Cursor Agent!
Discussion