Bringing Atuin to the desktop (Interview)

22 Oct 2025 · 57 min

Ask about this episode

Ask anything about it. ChatGPT or Claude reads this page and answers with the times it was said.

Connect VO and ask about every podcast you hear, including the moments you saved. Add to ChatGPT · Add to Claude

In short

Podcast Notes: The Changelog - Episode: Bringing Atuin to the desktop (Interview)

Episode Overview

  • Host: Scott Dietzen
  • Guest: Ellie Huxtable
  • Topics: Atuin shell tool, its transition to a desktop application, collaboration, automation in workflows, and the future of software tools.
  • Release Date: Not specified in the transcript.

Introduction

  • The episode begins with a brief introduction to Atuin, a shell tool created by Ellie Huxtable that enhances shell history management through syncing, searching, and backup functionalities.
  • It discusses the transition from the command-line interface (CLI) to a desktop application aimed at improving team workflows.

Key Discussions

  1. Atuin Overview
  2. Shell Tool: Atuin originally focused on improving shell history.
  3. New Development: Transitioning to a desktop application using Tauri, which offers a GUI to make workflows repeatable, shareable, and reliable.
  1. Development Insights
  2. Scott Dietzen's Introduction: Insights on AI in software development and Augment Code, a tool that enhances coding efficiency using AI.
  3. AI Limitations: Discussion about the current limitations of AI tools like GitHub Copilot, highlighting that they lack deep understanding of specific codebases.
  1. Transition to Desktop
  2. Desktop Application Features:
  3. Runbook Editor: Atuin desktop allows users to document workflows with executable blocks (commands that can be run directly).
  4. Collaboration: Aimed at teams, allowing for shared documentation and workflows.
  5. Executable Blocks: Users can embed terminal commands into documentation, which enhances usability and interactivity.
  1. User Experience and Community Feedback
  2. User Engagement: Early reception of Atuin desktop was positive with a focus on community feedback through Discord and GitHub.
  3. Telemetry: Use of opt-in telemetry to gather user experience data for improvements.
  1. Future Developments
  2. Runtime Enhancements: Plans to develop a new runtime for executing runbooks from both the desktop app and CLI.
  3. Flexibility and Automation: The aim is to create a system that allows for automation without heavy configuration and to provide a smoother user experience.
  1. Open Source Philosophy
  2. Open Source Commitment: Atuin is open source (Apache 2), with plans to keep the core functionalities accessible.
  3. Hub for Syncing: Currently, the syncing feature is not open source, but discussions are ongoing about potential future changes.
  1. Monetization and Sustainability
  2. No Immediate Monetization Plan: While people have expressed willingness to pay, the current focus is on community use rather than monetization.
  3. Long-Term Goals: The desktop application is viewed as a potential avenue for future revenue through organizational use cases.

Key Takeaways

  • Innovative Approach: Atuin desktop is designed to bridge documentation and command execution, making it a powerful tool for developers, particularly in collaborative environments.
  • Community-Driven Development: Active engagement with users is crucial for shaping the future of Atuin, and feedback is welcomed to refine the product.
  • Flexibility and Ease of Use: The emphasis on making automation accessible to a broader range of users reflects a growing trend towards simplifying complex workflows in software development.

Conclusion

  • The conversation highlights the evolution of Atuin from a CLI tool to a comprehensive desktop application. The focus on community feedback, ease of use, and the integration of executable commands into documentation positions Atuin as a valuable resource for modern software development teams.

Additional Notes

  • Ellie's Background: Ellie has moved to San Francisco and continues to work on Atuin while engaging actively with the community.
  • Cultural References: Throughout the episode, various cultural references, such as Tatooine from Star Wars, are utilized to create relatable analogies.

Resources

  • Atuin Website: [atuin.sh](https://atuin.sh)
  • Augment Code: [augmentcode.com](https://augmentcode.com)
  • Agency: [agency.org](https://agency.org)

Final Thoughts

  • The episode encapsulates the innovative spirit of open-source software development, emphasizing collaboration and usability as key drivers in the evolution of developer tools.

Written by AI. May contain mistakes. Listen to the episode to check what was said.

Hear the part that matters, and keep it.Open this episode in VO. Double tap your headphones to save a moment as you listen.
Get VO free

Transcript

Automatic transcript. May contain errors.

0:28All right, welcome. developers' hearts by syncing, searching, and backing up our shell history with ease. Now Ellie is tackling the desktop with a Towery-based app built to help teams make their workflows repeatable, shareable, and reliable. But first, a big thank you to our partners at Fly.io, the public cloud built for developers who like to ship. We love Fly. You might too. Learn more about it at Fly.io. Okay, Ellie Huxtable back on the changelog. Let's do it.

1:04Well, friends, I am here with a new friend of mine, Scott Dietzen, CEO of Augment Code. I'm excited about this. Augment taps into your team's collective knowledge, your code base, your documentation, your dependencies. It is the most context-aware developer AI, so you won't just code faster. You also build smarter. It's an ask me anything for your code. It's your deep thinking buddy. It's your stay-in-flow antidote. Okay, Scott, so for the The foreseeable future, AI assisted is here to stay. It's just a matter of getting the AI to be a better assistant. And in particular, I want help on the thinking part, not necessarily the coding part.

1:40Can you speak to the thinking problem versus the coding problem and the potential false dichotomy there? A couple of different points to make. You know, AIs have gotten good at making incremental changes, at least when they understand customer software. So first, and the biggest limitation that these AIs have today, they really don't understand anything about your code base. If you take GitHub Copilot, for example, it's like a fresh college graduate, understands some programming languages and algorithms, but doesn't understand what you're trying to do. And as a result of that, something like two thirds of the community on average drops off of the product, especially the expert developers.

2:17Augment is different. We use retrieval augmented generation to deeply mine the knowledge that's inherent inside your code base. So we are a co-pilot that is an expert and that can help you navigate the code base, help you find issues and fix them and resolve them over time much more quickly than you can trying to tutor up a novice on your software. So you're often compared to GitHub Copilot. I got to imagine that you have a hot take. What's your hot take on GitHub Copilot? I think it was a great 1.0 product, and I think they've done a huge service in promoting AI. But I think the game has changed.

2:54We have moved from AIs that are new college graduates to, in effect, AIs that are now among the best developers in your code base. And that difference is a profound one for software engineering in particular. You know, if you're writing a new application from scratch, you want a web page that'll play tic-tac-toe, piece of cake to crank that out. But if you're looking at, you know, a tens of millions of line code base, like many of our customers, Lemonade is one of them. I mean, 10 million line monorepo as they move engineers inside and around that code base and hire new engineers. Just the workload on senior developers to mentor people into areas of the code base they're not familiar with is hugely painful.

3:35An AI that knows the answer and is available 7x24, you don't have to interrupt anybody and can help coach you through whatever you're trying to work on, is hugely empowering to an engineer working in unfamiliar code. Very cool. Well, friends, Augment Code is developer AI that uses deep understanding of your large code base and how you build software to deliver personalized code suggestions and insights. A good next step is to go to AugmentCode.com. That's A-U-G-M-E-N-T-C-O-D-E dot com. Request a free trial, contact sales, or if you're an open source project, Augment is free to you to use. Learn more at AugmentCode.com.

4:17That's A-U-G-M-E-N-T-C-O-D-E dot com. AugmentCode.com.

4:47well i am joined once again by ellie huxtable with a twin which has been making my show magical for years now ellie welcome back to the changelog hi great to be here great to have you You sound closer. You were so far away last time. I think we had a schedule around our different time zones, but now you're in the States. What happened? What changed? I moved to San Francisco. That's been very recent, just like a month ago, but it's been good so far. Good so far. And where were you before? Somewhere in the UK, right? I was in London. In London. Okay. And you were often on a motorcycle. I remember that part.

5:21All the time. Yeah, still am. I bought one like four days after moving here. So that's it. Did you upgrade? Did you downgrade? Did you sidegrade? Sidegrade. I have a 1290 Super Duke now. The roads here are more fun and the weather's more amenable to motorcycling. So it's a good change. And they're in SF. It's got to be here in the San Francisco area. Is that what you said? Yeah. Yeah. Lots of hills. Yeah, they're fun too. Fun, aka dangerous, depending on your appetite for destruction, I guess. Pretty much. So A-Twin, such a cool tool. Very few times do I cover a tool in Changelog News and then install it and then use it and it integrates itself into my life.

6:01And it's been years now. So I just use it happily, control R for the win. I love it. I don't use probably any of the fancy stuff that you've added since then, but that was like your deal originally was A2N, the CLI, which is like synchronized and prettified and just better, in my opinion, shell history. And the sync was really a big part of what you were building, which is the part that I don't care about. I'm a one computer person. You can use it as a backup as well. It's pretty good for that. Yeah, that's true. And you had some cool stuff with like how you're handling sync and how you do that without, you know, violating privacy.

6:41And there was all kinds of talk about that. And then you continue to work on it. And now you're working on something that's very related and very cool and different, which is A2N desktop. Can you take us on the journey from when we last spoke, which is about 18 months ago on the show about A2 and the CLI and where you went from there, what you built? Yeah, sure. So the CLI records every shell command you run. That's kind of the whole point. It makes it really easy to recall them. But what is trickier with that is sort of recording whole workflows. So if you're looking for an individual command, it's great, it's really easy.

7:18But if I was looking for, like, how do I set up a new staging environment? How do I onboard a new developer? her? How do I do something that's a long sequence of steps and maybe needs annotations and various other things? The CLI helped, but didn't solve the problem. We had a whole bunch of discussion over years, to be honest. I've had this idea for a really long time of how can we solve this essentially documentation problem? And Atom and Desktop's the answer there, at least in my opinion. So what it is, is it's essentially a runbook editor. And what I mean by that is we started off by just building something that was good for recording notes and documentation.

7:57You can just write English words down and share them with people. But where it gets really powerful is the executable blocks we added. So we have things like terminal blocks, which are, if you imagine Notion, where it's like database blocks, instead of a database, we have an embedded terminal that you can actually execute a command. And this sort of takes it from like a Confluence page that goes stale to something that you can actually run and read in the same place. A lot of people have asked how this is relevant to the CLI and I can kind of see that it might not be immediately obvious. However, where it does become quite powerful with the CLI is all of the data you've been recording in your case over years in the CLI is accessible in the desktop app too.

8:40So you can screw around on your machine, figure something out locally in your terminal and then when you go to document it later on, you can write down what you did and you can pull in your shell history into the executable blocks. Yeah, that's really cool. Yeah, that's really cool. So if I recall correctly, you had a full-time jobs at one point, which was a MerPost hog. What was it? Was it Coinbase? Coinbase before that. Okay. So a couple of serious jobs and then you had quit your jobs in order to do this open source, you know, try to make it sustainable, live in the dream, so to speak. and there was a question on like well where do you take it from here and the desktop seems like a good place to take it because you're not just syncing for people you're providing collaboration you're providing tooling around docs and these are the people who are generally speaking like running infra at corporations right so is your end user basically like a is devops still the term i don't know a platform engineer i'm not sure they're calling themselves today maybe like a separate conversation but i think devops kind of like failed devops is over but no i it is sort of platform sre devops like whatever you want to call it people that do sshing and kubernetes stuff for their jobs we used to be called sysadmins back in the day i feel like we abandoned that because we wanted to get a raise you know but at the end of the day i mean you're administering systems so i like the term sysadmin i always have i probably always will how does it work i mean how is did you pronounce it atuin atuin yeah atuin kind of like tatooine pretty close actually pretty close we should change the logo to have like a turtle and a desert planet that would be pretty cool that would be cool the turtle is cute though so that always gets me going but atuin desktop how does it work there's a lot going on um it's an easy question for me to ask it sounds like it would be a hard one for you to answer yeah so i mean at a very high level it's a desktop app It's not an Electron app.

10:36It's a Tauri app. I'm not sure if I'm saying that correctly, which is a WebView, but it's your system WebView instead of a copy of Chrome. And the back end's all written in Rust, which I'm very happy with, instead of Node.js. Talk about that more if you want later. But we essentially launch a web app locally in Tauri, and it contains an editor called BlockNote, which is a really cool open source project built on top of TipTap and ProseMirror that provides like a block style editor. and we extended that with all of our custom blocks. So to start off with, you're just editing. You have a choice between a local file, which is currently essentially JSON.

11:15We're working on that. YAML, sorry, but again, working on that. Or you can use our hub, which you sign up for. You can create an organization or single player and it provides sort of automatic syncing, offline first editing, and the idea of that being like collaborative style features. You can have like multi-curses of people all zooming around, which we can see being really useful for incidents or helping someone figure something out. As much of it as possible is implemented in Rust. So right now we can't, again, we released this as a beta. There's still a lot of like right now it doesn't, but it will going on.

11:50But a lot of the execution is written in Rust. And the idea there is we can bring it to be a runtime, which is embedded in the desktop app that runs in a CLI all over the place for executing runbooks. um my kind of long-term vision there i guess is that current automation is kind of an all or nothing approach you start off with you know someone might maybe have documented something and that's that that alone is a stretch um or you kind of have to write a million lines of yaml and have it 100 automated and we find that there's very little in the middle there's no like happy medium and a lot of the time things just end up documented or not even written down because the automation is just such a high barrier of entry.

12:33The idea with the desktop app is to kind of make it easier to meet people where they might be comfortable. And that might just be writing down what you need to do, but it might be automating the whole thing with our blocks and then running it with our runtime. So it's designed to be flexible enough to handle most sort of abilities. So there's probably a group of our listeners who, when you say runbooks that run, which is one of the catchphrases for add to end desktop, they live in runbooks, they write runbooks, they copy and paste stuff all the time, they use their shell history all the time. and then there's other ones more like myself who I mean okay I used to be a system administrator but most of the stuff that I have to deploy or manage at this point is like dot slash setup.sh or deploy.sh and I can just have a little script and it's good enough and so that's at least my perspective and there's probably like you know a continuum of those folks for those who don't understand runbooks all that well besides like it's a it's a script of some kind or it's a list of things that I must do.

13:42Can you expand more on what kind of stuff a runbook can do and how they're usually used? Yeah. We find a bunch of use cases. It could start off just being super simple, almost like what you might write a readme for in our system anyway. So, you know, go install these dependencies, run this migration command, run this command to generate some fixtures, et cetera, et cetera. So it can be very sequential, run this, do this, do that. But we also find that people use them a lot for like database operations. So maybe you need to run a whole bunch of SQL to set up a new schema or migrate from one system to another.

14:16And we've made it flexible enough to make that easier too. So our dropdowns, you can power with the output of a shell command to select like an environment you might want to run in or a URI that you might want to use in a query. There's a lot of database use cases too. but also we use them a lot for our local development. So there's like a collection of maybe values in a local database you need to tweak or files that need generating. You can use them a lot. So you might have a home lab somewhere that has a bunch of setup required and everything's going to run over SSH too. So it can show you, yeah, you can use it for setting up a remote system too.

15:02So maybe you need to set up your ZFS and then you need to install K3S or Docker Compose or however you're running things. And it can help you with that too. So one of the challenges I think with this, especially in the diverse world of computers that we live in nowadays, is different stuff on different people's computers. So this helps with sync. I mean, because all of everything, if I'm using this as a team collaboratively, right? Like through your hub, I'm not sure if there's a separate thing I can, you know, self host or whatever. We can talk about that. But I'm syncing the runbooks across a team and we're collaborating on those things and that's all well and good.

15:40Oftentimes our environments are like drastically different. And so we've tried to throw containerization at that, like trying to help fix that. Is there any sort of concept or help with regards to that inside of Etuan? We don't currently, but it's something I'm really actively thinking about. We find a lot of people right now just have like a dependency step that does its best to set up the dependencies that you might need. But obviously, like you say, someone else might have a completely different local system than you. The only approach I can think of so far is having a container integration.

16:10So we have the concept of contextual blocks, which you would use for specifying that something needs to run over SSH. I'm currently thinking of doing something similar for containers where I can say, you know, this should run in my local development container. and it will sort of transparently make that work. I'm not a huge fan of it as an answer. I find containers for local dev to be clunky, especially on Mac when they're on a VM. But I'm also not sure there's actually anything better. Right. Turns out maybe Linux is the answer in that case. I mean, I've been on a Mac for a very long time and I've had this exact complaint for a very long time and it doesn't seem to be getting resolved at any point.

16:49And so everyone else is like, like, well, we just use Linux for dev. It's like, well, that seems like an answer. Especially recently, I've been more and more tempted. Yeah. As has a lot of people, I think. I think the luster and the excitement around Apple's products and ecosystem has just kind of like tarnished a little bit. I used to be very excited. And maybe it's just like, well, they haven't really changed much. Even like the iPhone events and stuff like that. Like I used to like plan my Monday around the keynote and like, let's watch it on the big screen. And I can't wait to see it. And then let's go.

17:25And we even have shows. We used to comment. We still do at times, but like, just like react to the Apple announcements. And honestly, like, especially the last one, like I didn't even watch it. I was just like, I don't. Yeah. I didn't even know what changed for a few days. It's like, it's another new phone. Maybe I'll get it because it's been three years, but my current phone still works. And it's just like, although they just released some MacBook Pros. And so maybe I'll go look at those and change my mind. But yeah, it's definitely, maybe that just shows age and exposure. Maybe not just age, but like exposure over time for all of us to these things.

18:00It's been like decades of kind of the same thing, just iteratively better. Anyways, a bit off topic. I definitely think that Linux is gaining mind share once again. And maybe not once again, but in a new group of people that it previously didn't have. Mindshare and fast containers for dev is one reason why that might be nice. I actually found the new Asahi, however you say it, the Linux on Mac OS. I have another Mac that's running that and it's incredibly good. Is it? A lot of my experience was like running Arch on a MacBook in 2015. And that was dramatic. Whereas you install this and it just works, which was really cool.

18:41I recommend it. Yeah, that is super cool. That is super cool. We tried to do a show on the Asahi Linux and those folks are hard to get a hold of. They don't like to come on podcasts if you know anybody. You can put in a word because it is fascinating technology, but they're a shy bunch, that's for sure. What have been some of the challenges with this? I mean, you've been working on it for a couple of years. What have been the hard parts? With the CLI, the hard parts realistically have been the sheer amount of data people have. So if we ever want to change anything with database schemas, it's a migration which professionally when we run a really big database migration, it's like, let's really pay attention to what's going on here.

19:21whereas when we release something there's like hundreds of thousands of database migrations going on and if one of them goes wrong that's someone who's lost data and we have to figure out how to recover that so it's very like mistakes i might have made a few years ago are sticking around right with the desktop app it's a different set of challenges i think it's very the cli is quite simple um a command line environment is it is very varied but it's still a terminal, you still have command control sequences and various other things. With the graphical app, it's a bit different. People running it on macOS, it's reasonably a consistent experience.

20:00But people on Linux who I really want to support as best we can, the graphical environments differ hugely. So making sure things run consistently for different people has been kind of hard. We kind of, we joke, there's two of us working on it, we joke that we're sort of building a terminal and a text editor at the same time and neither of those things are known as particularly easy things to build and they're kind of dramatically different too i mean yeah the desktop besides like you said kind of the spiritual ties between like you and the fact that you can pull in some of that shell history into the desktop i mean they're kind of wildly different products aren't they i think so i think they they solve very similar problems um they're all about knowing what to do next and not forgetting what you've already done.

20:49And I think when you're looking at a shell prompt that does not have any shell history and then does not have any good documentation, it's very much like what you can remember, what you can figure out and what you can Google, or I guess these days ask an LLM. But we're trying to solve the problem of making the shell really easy to use, making repeatable workflows quick and easy. And when you look at it that way around, they are kind of the same thing. It's just trying to solve like an ecosystem of problems rather than just one. And so why did you go to the desktop? Have you could have just taken the shell and maybe done a two E or expanded it?

21:22I mean, it kind of is a two E already, right. Um, but expanded it and put this kind of functionality in where it already existed. Why'd you decide to start fresh with a, with a graphical interface? Yeah. So the, the end goal is to have both a two E, a CLI and a desktop app, but I think the desktop app is the most like revolutionary change um kind of putting myself on a pedestal i guess but there's a lot we can do in the graphical app that you either can't do with a 2e or feels feels clunky um the editing experience we can give people in a desktop app is a lot better than we could provide in a 2e we have another example we have prometheus blocks so imagine you have a run book that is how to react to an incident and you can have a chart in your documentation that's real time with a terminal underneath it that lets you change stuff and you can see what you're doing and what reaction that has at the same time.

22:13And doing that in a 2E, I'm sure we could probably render a chart somehow, but it wouldn't have the same impact and it wouldn't be as explorable. And a lot of what we're trying to do is make it exploratory and make it something where things aren't quite as strict. They don't necessarily have to run in order. And again, fitting that into a 2E is not as straightforward. An early prototype was actually a web app. So if you think like a Jupyter Notebook style experience, you run like a server and then you open it locally. And I didn't really like how that felt. I think we couldn't integrate with the system quite as well, even with the web app angle.

22:50And the desktop feels a lot nicer. We're not necessarily shutting off any of these things as futures, future sort of expansions. But the desktop's, I think, where it starts. I like to think of it more as you're putting a terminal into some docs and not putting some docs into a terminal.

23:30under the Linux Foundation, Building the Internet of Agents. This is a global collaboration layer where the AI agents can discover each other, connect, and execute multi-agent workflows across any framework. Everything engineers need to build and deploy multi-agent software is now available to anyone building on agency, including trusted identity and access management, open standards for agent discovery, agent-to-agent communication protocols, and modular pieces you can remix for scalable systems. This is a true collaboration from Cisco, Dell, Google Cloud, Red Hat, Oracle, and more than 75 other companies all contributing to the next-gen AI stack.

24:14The code, the specs, the services, they're dropping. No strings attached. Visit agency.org, that's A-G-N-T-C-Y, dot org to learn more and get involved. Again, that's agency, A-G-N-T-C-Y dot org.

24:35How has it been working with Towery as a platform? We've done a couple of shows on it. We haven't seen very many production apps out there. There are. They are out there. I'm not trying to belittle it, but it hasn't been a huge upswell. Electron still is the 800-pound gorilla in the room. Generally, very good. There are some issues that the team are aware of and are working on. So firstly, the development experience has been really nice. Being able to write Rost has been really good for us, especially. We're doing a lot of systems-y stuff. Being able to include all of the libraries you've already written has been awesome.

25:11It's a lot lighter as well. So when someone downloads like a 20-meg package, it's a lot nicer than asking them to go download like 5, 6, 700 or whatever Electron apps are now. the resource usage is lighter I don't know if it's necessarily as light as people might say because you are still running a web browser it's just not another instance of Chrome right as you proliferate Tauri's you're not going to have multiple Chrome meows in the background but if you're just going to run one you're still going to run a full Chrome Mac OS has been nice because every user is they're using the same web view that's consistent it's what we develop on And so it's fine.

25:52Linux has been, honestly, I thought it would be worse. So it's a lot better than I expected. Tarion Linux currently uses an old WebKit version, which has some performance problems, is not as, I think the performance is when there's a large number of DOM elements. There are several very long GitHub issue threads, if anyone's interested. But it's luckily for us being mostly okay on most systems, but it's not quite as performant as it could be on macOS. The team are looking to use Chromium embedded framework on Linux, which would solve the performance problems, but I'm not sure if that's just doing Electron again.

26:33But what has been good for us is, again, the Rust on the back end means that anything that needs to be fast, we can make sure it's really fast rather than it's all JavaScript. So another opportunity you had with this project, It was a fresh start code base wise with Add to End CLI. I would say the reception to it that I see and that I have was like universally positive. It's just like, this just makes my life better. Open source. But the question is like, can we make money off of it? Who knows? And now you come out with a desktop app and it's like an opportunity to make some money, but also open source, like you're following that same pattern.

27:10So your thoughts on that? Yeah. So the CLI was, I mean, I could definitely charge people for hosting. I've had a number of people say, oh, let me pay you single digit dollars a month for shell history hosting. And that was nice. However, like the way I looked at it was, I don't want to work on shell history by myself forever. So it needs to have the potential to do more. And it also has to have the potential for it to be more than just me. And we have something like 26 ,000, 27 ,000, maybe people syncing their shell history. And I worked out that realistically, 100 % of them are not going to sign up to pay.

Read the full transcript

27:49It's going to be quite a low amount. And we can't charge very much for it. So it's quite a niche, realistically. It also really doesn't cost very much in terms of infrastructure to run. I self-host the Postgres on a Hetzner machine. It's cheap. It's really performant. And other than my time, it's not a big sync. Desktop, I think, has a lot more potential in terms of business project. There's a very direct organization use case, potentially even stronger than the single player use case, really. And there's a lot more scope to do really interesting and flexible things with it. It is open source.

28:26It's Apache 2. What is not yet open source is the hub for syncing. um so we have two types of workspace you can have an offline workspace gives you local files on your disk you can put them in git like whatever you want basically um but the hub is the synchronizing real-time back end and it's not open source right now basically we haven't figured out what to do with it yet and i would very much rather have something closed source and then six months from now decide to open source it then open source something realize I've backed myself into a corner and then have to do a horrible license change.

29:03And it's a nightmare. Yeah, what we say around these parts is rug pull, not cool. So definitely keep your cards close to your chest. And then if you want to flip one over and show that you get the ace of spades later, fine. Go ahead and do that. And I feel very strongly that if you're running it on your machine, it should be open source. Like if it's a desktop app, you should be able to see what's going on. You should be able to change it. Yeah, I think that's a good distinction. That's a good place to draw a line in the sand, I think. And I think you're right because when it comes to run books, I just feel like anybody who's playing single player don't care that much about something like this because they got their scripts.

29:38They might have a notion or obsidian and they're just like have their docs in there if they write down or it's all living in their head. Like usually when you need a run book, it's like, hey, I put together how we do this. Now we can all run it when I'm on vacation or whatever happens when it's your turn to be working and not my turn. And so it's almost de facto team, right? Like it's going to be collaborative. Obviously there's the outliers who will be using it because they just like your software or whatever, or it's a prettier way to, to manage their own docs and scripts. But for the most part, I do think it's going to be something that organizations will adopt.

30:12Whereas the CLI is like, just like hackers and nerds, you know, sure they work in an organization, but it's going to be harder for them to get their org to, you know, sponsor. exactly and like the only the only real way i could see the cli applying to an org is like share your shell history with your team which i don't think anyone's ever going to want to do because it's weird yeah it is kind of weird it's like at first you're like that'd be great then you realize all the things you type i don't know it's like my team seeing my browser history there's not anything weird there i just don't want to yeah it just doesn't it's just useless and maybe embarrassing at times you know you're like sometimes i type things that is wrong you know or I feel like a command is going to work and it doesn't.

30:50And it's like, there it is. It's in my shell history. Absolutely. We have heard a lot of people ask about self-hosting it, which is something I really want to support, but there's also the other angle of supporting it. And I found with the CLI that it's self-hostable and has been for forever. And it's tricky to support people. Generally, the Docker Compose we provide works, but a lot of the time people want to run it differently. They want to do their own thing with it. and supporting that's super hard. So we're now kind of at the point where it's like, unless you're using our Docker Compose and it doesn't work, I probably can't help you, mostly from just a time and energy perspective.

31:28With a desktop app, I wouldn't really want to be in the same place and it is a lot more complicated to run for the backend. So if we do open source it and I would like to, it would definitely be like, you can run it, it's on you. Yeah, that makes a lot of sense versus like a GitHub Enterprise thing where you're going to go install it on their premises and operate it for them. Yeah, that makes sense. Did you, going back to the CLI and potential monetization, people are desiring to give you money, you know, and that's because they love the work that you do. And I've seen that online, just the response to it as almost universally positive.

32:10It's very good software. People love it. They seem to love you. and they just want to give you money and did you try even just turning that lever on like even though it might not be your end goal or something that we had we had for a long time and what about the self or the host like let me give you a two bucks a month to to do this i think that changes what it is maybe someday i will but i think realistically it doesn't cost me very much to run and i'm quite happy providing it as just a just a thing people can use um okay the two bucks a month i mean i i guess but then it becomes uh like supporting people because there's suddenly like you know they're paying their actual customers it's it's a strong expectation there but we haven't had any downtime in like a year so probably be fine probably sounds like you designed it pretty well and it's relatively uh efficient like you're not having to constantly be working on it and maybe upgrading whether it's vertical or scaling the other way so that's nice remember when radiohead came out with their in rainbows album and it's like pay what you want and i don't think free was an option on that one but basically i mean you could do something like that where it's like it's between zero and n dollars where n is whatever you want to give me but zero is what it costs i think you have a not insignificant amount which could also be called a significant amount of money, you know, maybe put some, put some, uh, petroleum in your motorcycle or something like that.

33:40It's quite expensive these days. It is. It's not getting cheaper. Yeah. I think honestly, for me, it's like, I want to, I want to explore what we can see, what we can do with the desktop app and then, um, and then maybe, maybe the future of the CLI might change, but it's where it is now. I'm super happy with how it's going. I'm super happy to let people just have it and use it um yeah realistically my my my thoughts on monetizing open source software are more around like individuals just use it for free go have fun and then it's the companies that should be paying um they get a lot out of open source so so how has the reception then been to the desktop release because it's it's in beta it's out there it's open source and it hasn't been very long maybe a month or so that it's been out yeah it's been it's been really good we have opt-in emphasis on opt-in telemetry well nice i screwed that up it's actually opt out but you can opt out on the launcher so it's okay so it's opt out but you just click it's right in your face when you start it up so it's easy and it's pretty much what we gained a thousand signups on the hub which was really cool to see we've got people making hundreds and hundreds of runbooks which is also really cool to see i think the biggest thing for me though rather than that telemetry is more the community response.

34:58So we have in our Discord, we have a separate channel for the desktop app. And people have been in there really active using it. GitHub issues usually imply there's an issue, but it also implies that people care enough to actually tell you that something's not working for their use case or something's going wrong and provide like a bunch of steps. We've had people provide some like actually really thoughtful GitHub issues as well, which has been nice to see and nice to work on. I think for me, it's also good validation. so again i've been working on this for around a year um in one form or another and we did release in a closed beta back in april and that had a nice reception but it's it's the validation of you can go download it right now it's on the website go try it and let us know what you think and that going successfully as well which is really nice validation that the problem that i see is a problem and that i have built a solution to is a problem that other people see too yeah Well, I did download it and I'm staring at it currently.

36:00Looks very nice. I like that there's some examples because I'm a guy with zero runbooks, you know, and I can put my deploy script into here and write about it. But, you know, just trying to kick the tires. You have the Atuin desktop release. This is actually how you guys release a new version of it. Yep. We run that all the time. You run that one all the time. which looks like it's maybe like seven or eight steps updated 23 hours ago so you're still currently working on it that's always awesome and then there's also one yeah we also got one for the cli as well that was not yet open source but there's a little mostly automated like the first 80 percent of it just runs then there's a nice little step of like go look at this make sure it's correct merge the pull request and then come back to the runbook gotcha so i'm looking at the add to end desktop release runbook.

36:52And in the upper right, there is a green play button. And in front of me is notes. This runbook is a copy of the runbook that we use at add to end, blah, blah, blah. Here's your dependencies, the release process, version bumps. Like it has a typical kind of a markdown looking documentation with executable blocks in there that will run, I assume, on my local machine if I hit the execute button. That's right, yeah. Okay. The upper right-hand corner with the play, is that going to run the entire script top to bottom kind of a thing? Yeah, that's what it does. So again, it's meant to be flexible enough that you can pick an individual block to run if you need to or rerun or whatever.

37:34But then if you've built it to be sequential, you can just run the whole thing end to end. Nice. And then I assume it just stops when certain parts fail because inevitably with somebody else's runbook it's going to be like, no, you don't have this thing installed. Terminals are the only exception. So terminals need to exit in some way and they won't exit themselves. So because it's an interactive terminal, we don't know when the command you've run is done or when what you're trying to do has finished. So you either need to exit the terminal within your script or you need to press stop. And when you say terminals, you're referring to like an interactive thing that's going to go on in here?

38:10So we have terminals and scripts. terminals it will run like like your terminal emulator just in your okay so it's gonna like block and wait for a response exactly whereas scripts it's like you just it's like running bash on something basically right so in this desktop release uh the first thing i see is just a curl command that's a script right yeah and then this says terminal install cargo bump that looks like it's also a script oh that's a terminal these are terminals so if you run one of them it'll um open a terminal locally and and run the thing gotcha i'm afraid to do that oh look at this okay because i can actually stop and i can say no wish i'm glad i can because i'm gonna stop it right there okay so terminals are interactive and scripts are just going to run and whatever the response of the script yeah the cool thing with scripts is we can capture the output so if we were to capture the output of a terminal it there's like a ton of control codes and various other things going on.

39:06But with a script, we can capture the output. And that we save in our local template system. So we support Ginger, pretty much. And you can use the output of blocks to feed in as the input of other blocks. So as an example, you might have a Postgres block, and the input for that, you might need a database URI that you can only get by running an AWS Secrets Manager command or like a 1Password thing. So you can have all of the setup to get you to that point in your runbook and then you can run the query with the output of the script gotcha super cool so these examples are very useful especially if i'm going to start writing my own because they show you kind of how somebody's really using it is there going to be or is there currently some sort of like compendium of example like beyond your guys's official examples like i assume some sort of hub that's like shared coding thing so if you were to go to hub.atwin.sh slash Ellie.

40:04You can see my profile. Okay. This is a thing. Yeah. Um, she didn't ask me to ask this question. I didn't tear up on purpose. I really did not know. Yeah. Um, you can currently share runbooks only. Um, okay. And they only work for using an online workspace. You can mark them as private, public, or unlisted. Um, I might share a getting started guide or a migration guide or a self-hosting guide for something I'm sharing with the world. Maybe I'll do a build guide for the desktop app. One of the other things we want to share on the hub is actual blocks. So currently you can have saved blocks. Maybe you have something for setting up your dependencies that you do across like 10 different runbooks.

40:45You can just save that locally and then import it into various other runbooks. But in the future, you'll also be able to share those via the hub and access other people's blocks to try and kind of just speed up what everyone's doing. This is very cool. This seems like fertile ground for early adopters to get out there and build out their profile. You know, is it accessible to everybody at this point? It's just not indexed. Yeah. It's not indexed. Um, how do you do it? Like if I wanted to start publishing, what would I do? Um, in the desktop app, when you start it up, it'll often make an account.

41:24If you said no, just click your profile on the bottom left and you can register there. And that will get you set up with an account. Okay, you can actually do the desktop app. You should be good to go. Gotcha. Yeah, so I did appreciate that. One of the things I don't appreciate about desktop apps that should just be usable local without any sort of account is when they still don't tell me I can use them locally without an account. And yours does say, hey, sign up. And then it's like, but if you don't want to, click right here and just use it. And so that shows me that you're a person that I like because I do appreciate that.

41:57Just let me use a thing. And then if I want to sign up for a reason that's like having a profile, make it valuable and I'll go ahead and sign up when I want to. Exactly. I want it to be useful offline. I want it to be useful like open source. And I think one of the big things we're aiming for is like, you know, we might not be around in three years time. I would very much like to be. However, if we're not, and someone has built out their whole entire workflow on this, it would really suck if they couldn't use it anymore. So it's important that they still can. How portable do you think it would be if I was building my runbooks, assuming the worst?

42:30Like you disappear, the company disappears, the GitHub repo's gone. Like I can't run it. You know, I never got the self-hosted thing. Could I get them out relatively easily? It's gotta be close to text at the end of the day, right? Yeah, so if you're using an offline workspace, it's just YAML on your disk. And the format is quite verbose, but a bunch of scripts and you can pull it all out and it's fine. What you can also do is you can export Markdown. So it is, we don't really like the fact that there's YAML as our file format. So the end goal will be to use Markdown as the file format. But what you've probably noticed is that the editor is richer than Markdown provides sort of Markdown for.

43:14So figuring out like a very light extension we can do that lets us encode everything we need to encode, but also makes it so that you can still actually edit it in a text editor and read it and various other things. So that's not done yet. And that's something I want to do correctly and would actually appreciate input on if anyone has any thoughts. But if you export Markdown, you'll see that there is some front matter in the code blocks, which is how we're currently seeing things. Gotcha. Yeah, I think that would definitely be a huge upgrade to get that done. What else are you working on? What else is in the pipeline?

43:48Yeah, so coming really soon is a new runtime. The current runtime is very much like, let's get something that works and see if people like this. And the new runtime is going to be, let's make sure things are really, really robust and flexible and will allow you to run runbooks from the CLI, which is, in my mind, very important because then it allows you to run them in the CI systems as well. So maybe you have a readme that's getting set up and you could actually test your readme, and that would be really cool. Maybe you have a bunch of disaster response runbooks. It's really important that they actually work and you don't find out that they don't work at 3 a.m.

44:26when you need them. And if you get things set up right, maybe you could test that on a schedule in some automated system somewhere. I think it's also important just to be able to execute these things without a desktop app if you really don't want to do it. So that's what's coming soon. So when you say a new runtime, can you unpack that phrase for me? Yeah. And tell me more about what that means. So when you click play on a terminal, there's a bunch that goes on behind the scenes. Currently, the front end makes a call to the back end to ask it to open a pseudo terminal, and then it gets a handle back, and then it starts writing to that with the input you've provided it.

45:01That's like a special case. So the front end knows that it's a terminal. It knows that it has to open a PTY and do X, Y, and Z. What we're trying to do is get it to the point where the front end just says, run this block. And that's it. and that means that the front end doesn't have to be a desktop app it could be anything and it also opens the door to a lot more flexibility in how blocks are defined so we're not there right now however i would love for people to be able to write their own blocks their own integrations whether these are backed by a shell command or some big set of code um doesn't really matter but right now it's very much like every block works but it's like a nice sort of combined effort between the front end and the back end.

45:45And we'd like it to be the front end as minimal as possible. Is more minimal, does less heavy lifting so that a different terminal could call Runbook and run it from there. Is that going to require you to first figure out a more permanent serialization format or you already have that? No, so the serialization is, there's like the in-memory format and then the on-disk format. The on-disk format's the one that's up for change, the in-memory one we're happy with. Okay. Right on. It is open source. Is it open contribution? How do you, why do you, when do you, how do you? Like, tell me more. So we accept contributions from anyone.

46:28We accept fixes, especially, like quickly. Features, this is something I never really planned out with the CLI because I didn't think anyone would care when I first released that. we never really thought about how to accept feature requests from people. And in the early days, I was very much like, oh, my God, someone's built something cool. Let's merge it and let's go. And towards sort of more recently, it's been, you know, is this something I want to maintain long term? Is this something that people actually want or is this just bloat the code for no real reason? For instance, there's been a pull request open for a really long time that I feel kind of bad about.

47:05But someone's added PowerShell support, which is super cool. However, when he first opened the pull request, I hadn't seen very many pull requests from the guy. And if he's listening, I really appreciate your work and thank you very much. However, when he first opened it, I didn't know if he'd stick around. And I made it very clear that I could not maintain a PowerShell integration. It's not something I have any familiarity with. And the dude stuck around for like six months making fixes to various things, making other PRs. And now it's like, well, I have trust in your code. And I also have trust that when you say you're going to stick around and keep it going, you probably will.

47:42So that's also a consideration I never really had originally. But jumping back to your original question, open contribution, fixes, like anyone fix anything and open a pull request, I'm super grateful and we'll review it as quickly as possible. Features, if there's like an open issue for something and someone really wants it, wants to make a PR for it, that's awesome. um but i do generally prefer an issue before someone makes a pr purely because it really sucks to say no to something someone's put a lot of effort into right it's a lot easier if it's just an issue yeah there's code behind it you're like oh you spent all this time yeah you spent all this time on it and then that's not something we're going to merge and i'm really sorry um do you communicate a roadmap or like a a place where you're headed because sometimes it's hard to know like i have a feature request obviously i could just ask but if i knew there's like here's our direction i could at least say if i'm tangential to it or not so a roadmap is on the roadmap um okay i'm planning on doing it soon yeah you have a roadmap that includes to create a roadmap yeah i like that um so soon we'll be writing a ton of issues realistically i've got like internal notes and various other things and what needs doing and now that we're open source that needs to be made public.

48:56The format of the roadmap will probably be mostly GitHub issues just because that's what's accessible to most people and pretty much everyone has a GitHub account. But we will be using the forum and the blog more too. So a lot of the development so far has been on the forum. It's generally where we've found discussions live best. GitHub issues, I tend to prefer keeping actionable. Like, you know, there's a clear reason to close one because a PR has been merged or something like that. GitHub discussions never really did it for us. They felt like an afterthought from GitHub, to be honest. Well, it came years later.

49:35Exactly. So Discourse, we host a Discourse forum, and that's been a nice place to host discussions. What about the CLI? Do you consider it mostly done? Does it have major feature requests? Is there a roadmap for that? Or what's the status of the CLI tool? Yeah, there's less of a roadmap, more of a bug fixes I will try and get to as soon as possible. Features, I tend to prefer features a lot of people ask for or that I personally really feel the need for, which a little bit selfish, but you know. But it's very much, I would rather see enough demand for a feature before bringing it in, unless it's very, very obvious that it's needed.

50:15There's been a lot of, I think recently I saw someone talking about being able to add comments and tags and various other things to commands. And I think that is useful. However, my thoughts there are that the interface for actually searching them needs to be really good because there's a little point in adding organizational metadata and not being able to search through it effectively. So I think that's quite a large change and therefore one that unless a lot of our users want it, it's not necessarily worth doing because then we have to maintain it too. and are those conversations going on in the github issues or is there a separate place for those uh usually github issues people will make a feature request and then it can be discussed but yeah um i need to get better at managing those because it's a bit of a mess fair such as life you know it's it gets messy and sometimes it stays messy especially when you have a shiny new object that you're paying all your attention to right i mean this thing is a big lift i can tell you put a lot of work into this and you can't you can't spend all your time on the cli when you're building a desktop app right yeah i think it's definitely i don't want to neglect the cli uh we had one of our users thank us for not neglecting it which was nice because i'm glad people feel that way um but the cli is definitely much more mature uh we've noticed you know when i first released it a lot of the early issues were very this does not work at all on my system because of xyz and now how it's very, this does not work with a very, very specific setup and very specific set of use cases, which is sort of for us more of a signal of maturity and less of a like, I just broke everything and more of a, we need to figure out how to integrate with something I'd never considered.

51:53Something new or something obscure. Yeah. From my perspective, I mean, I just been using it kind of how you built it on day one originally, just ever since. And it just does what it does. And it's mostly invisible. I don't think about it very often. I use it all the time, but without thinking about it. Like you do good shell tools, right? Like you're like, well, I don't think about LS very often either, but I'm going to use that one all the time as well. We have a lot of people tell us that they didn't realize how valuable it was until they didn't have it. Oh, yeah. That's going to feel good. Yeah, that's cool.

52:20And who knows, when I get a new machine, maybe I'll finally get the sync to be useful for me. I'm like the only person that doesn't care about syncing things. Well, let me know if you do. It'd be cool.

52:32And I'm going to try to find a way to use the desktop app. You know, I love your work. I think you put a lot of thought into the way you go about building software. And I think that that's rare and just refreshing. And it just makes tools that are delightful to use. And I can tell you put a lot of love into this one, even though it's not exactly right in my daily use wheelhouse. Still look for a reason to go beyond kicking the tires. Yeah, I think in terms of, I hope you do, but I think in terms of users, it's like the CLI has very broad. You know, if you use a terminal, it's probably useful. whereas the runbooks app is like maybe less broad use case but in terms of the actual use it's much deeper so well for sure if you're a user of this it's going to be like part of your daily job you know and exactly your team will rely upon it it'll be very valuable for the people who do use it so i agree it'll go deep and these are people who are generally well employed at places that have complicated infrastructure and they need tools like these to make their job not miserable all the time, you know?

53:36Exactly. Yeah. That's what we've been seeing. Very cool. It was awesome to catch up with you. You've been doing a lot. Anything that we didn't talk about with regard to Add2in, the CLI, the desktop, San Francisco, motorcycles, anything else? I think we covered pretty much everything. It's been a good chat. Absolutely. Well, the website Add2in.sh, there you'll find both the desktop app and CLI. Maybe you'll use them both. Maybe you'll use one of them. Maybe you won't use either one, but you can check them out. They're open source. If you want a good Rust code base to check out and maybe contribute to our listener, I would submit that to you because she makes good software, folks, and she pays close attention to the details that matter.

54:21So check that stuff out. Ellie, thank you so much. I wish you all the best with this new endeavor. And definitely keep us in the loop, especially if the self-hosted thing comes out. as more things are released and open sourced. Don't be a stranger. Thank you very much. It's been great talking to you.

54:41So Ellie pronounces it Atuin, which does sound a bit like Tatooine, which if there's a bright center to the universe, Tatooine is the planet that it's farthest from, but it does have a useful spaceport in Mos Eisley, but you'll never find a more wretched hive of scum and villainy. So be cautious, but not with Atuin desktop, which seems like a pretty safe bet. Give it a try and let us know what you think in the comments. We hang out in Zulip. Head to changelog.com slash community to join. It'll cost you exactly$0. Thanks again to our partners at Fly.io and to our sponsors of this episode, augmentcode.com and agency.org.

55:21That's A-G-N-T-C-Y dot org. And thank you to Breakmaster Cylinder. We'll never find a more mysterious hive of beats and boops. That's all for now, but we'll talk to you again on Kaizen 21 on Friday.

56:19So you said something about DevOps being dead, or I can't remember exactly what you said, but you have feelings about DevOps either as a term or as a, as a thing. What is that? I mean, correct me if I'm wrong, I thought DevOps was originally meant to be bringing.

56:36It's better.

From the publisher

Ellie Huxtable's magical shell tool, Atuin, won developers' hearts by syncing, searching, and backing up our shell history with ease. Now Ellie is tackling the desktop with a GUI built to help teams make their workflows repeatable, shareable, and reliable.

More from The Changelog: Software Development, Open Source

All 232 episodes
Bringing Atuin to the desktop (Interview)The Changelog: Software Development, Open Source · 57 min
Listen in VO