Devin Workshop Results: I Built a GNOME/Browser Tabs Switcher
- published
- reading time
- 4 minutes
A few days ago, on August 1st 2026, I went to a free Devin workshop/hackaton. It was delivered by Erasmo Hernandez , supported by Cognition and hosted by Xmartlabs in their Montevideo office.
First, for a couple of hours Erasmo gave us a thorough walk through Devin’s features, and he developed an app in real time as a demo.
Then came the best part: we were to develop our own idea over the course of 1h approx. I had a few ideas in the back-burner, and, on the bus ride, I had decided on the one that seemed more clear on scope. I also had a conversation with ChatGPT on whether the idea was feasible and how should it be architected.
Before the “hackaton”, I hadn’t used Devin, but it was easy to install it and sign up. I told ChatGPT to write the initial prompt, based on our bus-ride conversation, and Devin started working for more than 20min. There were a few iterations where I requested some changes. However, after like 1h of work, there was a bug that Devin was failing to fix. At that point, I switched from Sonnet 5 to Opus 5 and after a few more minutes, the bug was fixed and the “product” was working! In total it took me like 90 minutes, more than the 1h plan, but I was genuinely surprised that it had worked at all. And, anyways, plans never go as expected, do they?
Now, about the “product”. It’s an “app” switcher for GNOME, with a twist. In these days of AI and context-switching, I have usually at least 4-5 VS Code windows open. That’s why I find the built-in GNOME app switcher (Alt+Tab) insufficient because it groups all windows of the same app. Then I found this GNOME extension by Daniel Landau et al. This one solves the problem of quickly switching to a given VS Code window because not only shows them all, but let’s you filter them by name. So my “product” idea was: what if I could include my browser’s tabs to the same switcher? I run many web apps on tabs, like WhatsApp, Gmail, etc. These feel like regular apps to me. Why not switching directly to them?
I think this video might make it more clear:
And yes, before you ask, my browser is Vivaldi.
To make this work, Devin started by forking Landau’s switcher and making changes to it. It also created a browser extension and a “bridge” python script that opens a Unix socket to let the GNOME extension talk to the browser extension. Apparently, this is the way.
If you’re interested on the code, it’s here . You can try it, but be warned: this is just a PoC. I’am using it all the time, and I tried to make it not terribly bad, but I cannot guarantee stability, reliability, etc. Also, the installation process it’s a bit convoluted. For the time being I don’t have plans to polish it or grow its user base.
TBH, I had never looked into the internals of neither of these types of extensions before, but now I had, and they seem a lot less magical to me.
One more thing. After presenting my “product” to the fellows in the workshop. I came with an improvement: using the pages favicons as their icons in the switcher. In the first version, all their icons were Vivaldi’s. I asked Devin to do it, and it was the last commit of the day.
Here’s the log for reference:
git log --since="2026-08-01 00:00:00" --until="2026-08-02 00:00:00" --date=format:"%Y-%m-%d %H:%M:%S" --pretty=format:"%ad %s" --reverse
2026-08-01 12:01:26 init
2026-08-01 12:24:57 Add unified GNOME + Vivaldi task switcher prototype
2026-08-01 12:29:56 Add step-by-step install guide for both extensions
2026-08-01 12:44:13 Default the fork's switcher hotkey to Super+R, use its own dconf path
2026-08-01 12:54:20 Fix Super+R not working: give the keybinding its own action name
2026-08-01 13:34:54 Stop Vivaldi tabs being sliced out of the switcher list
2026-08-01 14:50:54 Show tab favicons in the switcher, falling back to Vivaldi's icon
Today, Devin was useful in another way. I asked it to create the video you saw before. When you run it on the web app, at https://devin.ai , it spawns a development VM that the agent can fully control. I asked it to install everything there and capture the video. I could have captured it manually in my laptop, but I didn’t want to figure out how to add the captions. Yeah, I’m lazy, I know.
To summarize, thanks to Erasmo Hernandez, Cognition and Xmartlabs to help me learn about this fantastic development tool! And thanks to Daniel Landau for the original switcher that was used as the starting point.