Hey!
I manage the unofficial build at https://github.com/aaddrick/claude-desktop-debian
Debian is in the name, but scope has grown to all backends, compositors, etc.
The main reason must companies don't publish Linux electron apps is fragmentation. If you're doing anything more than rendering a webpage as an app, it starts to get complicated. I've got a bank of VM's setup for testing, and I still need it up.
> The main reason must companies don't publish Linux electron apps is fragmentation. If you're doing anything more than rendering a webpage as an app, it starts to get complicated.
Can confirm. At a past company we worked hard to release a Linux desktop client for our customers who wanted it, even though the number was small.
It turns into compatibility hell very fast. You think you can target a couple recent Ubuntu releases and everything will be good, but then youâre getting peppered with complaints from people using distributions youâve never heard of because some part of the app isnât working right. So your engineers spend a half day installing that in a VM and debugging it, but the problem is in upstream somewhere. The number of tickets with Linux issues keeps growing and each one is taking more time to debug, all for a number of customers that is so small you canât justify doing it.
But those customers are angry. And vocal. Theyâre posting all over Twitter, Hacker News, and Reddit about how your companyâs software is garbage, without mentioning that theyâre running an unknown distribution on a 13 year old ThinkPad.
This even impacts open source projects. Several popular OSS Electron apps donât work on many popular distros unless you set some command line workarounds, and even then itâs flakey. The open source projects get a pass because itâs open source, but if your company releases something you might be picking up a lot of angry, vocal customers that you didnât want.
Yeah. I just dropped another repackaging repo for Wispr Flow. https://github.com/wispr-flow-linux/wispr-flow-linux
A lot of that is keyboard shortcuts for push-to-talk. Easy right?
X11 is mostly fine, but the world is moving into Wayland. Wayland doesn't have shortcuts native and relies on xdg-desktop-portal, which in turn relies on each backend to implement it's own version.
COSMIC from the Pop!OS team's xdg-desktop-cosmic doesn't support GlobalShortcuts yet (might now, haven't checked in a bit). So XWayland for them.
Tray icons? GNOME doesn't have a tray out of the box, but there's an extension. There's no standard for whether it's light mode or dark mode across distros and when you map out the options, no api's indicate whether the tray is light or dark while in light/dark mode. At some point you have to just accept it's not always perfect or patch in an override.
A lot of us are happy gnome doesnât support tray icons. We are sick of devs thinking their app is so important it needs a visual presence at all times. If I need your app Iâll bring it to the foreground, we have the technology.
Global shortcuts definitely a pain point with Wayland but the portals are making progress.
> Can confirm. At a past company we worked hard to release a Linux desktop client for our customers who wanted it ... youâre getting peppered with complaints from people using distributions youâve never heard of ... but the problem is in upstream somewhere
You have taken on the work the distributions do in the open source world. No upstream open source developer takes that on. Instead of getting bug reports from users, upstream developers insist bug reports are filtered by the distro maintainer first. They fix problems on their side so you never see them, and the ones that do make it through have been triaged. It's a win for everyone.
So the solution is to handle it the way they do. Choose a couple of baselines: maybe Debian Stable and Fedora. Publish packages for them, and make it plain they are only certified for those platforms. Make the rest someone else's problem: if you want it working on distro X, you package it for distro X. You've done the bulk of the work for them anyway, as most of them are either Debian or RPM based.
> No upstream open source developer takes that on
The key words here are "open source", right? Some problems can't be solved without cooperation with the developer.
Sounds like a product management problem. If you declare that you support RHEL and Ubuntu LTS and LTS-1 yet still process bug reports from other installations, the product owner is not doing their job properly. Any bug reports from Nix or Fedora got to be closed due to a wrong operating environment. Even accepting bug reports from the latest non-LTS Ubuntu release should be avoided.
Yep, I've seen the same issue in video games. A few passionate engineers convince PMs to make a Linux version of the game, they test on few popular distros, everything is great. Then the game launches , and a very very very small minority of Linux users can't run your game, but they file 75% of all your support tickets. If you don't respond to them in the manner they find acceptable, they are extremely vocal on social media about how you as the developer are lazy and incompetent. It's 10000% not worth it for that reason alone. Nowadays I'd personally advocate for making sure the game runs well under Proton and leaving it at that.
The sad part is, that those people usually think, they help linux this way.
> The main reason must companies don't publish Linux electron apps
But they do? Companies donât publish anything BUT electron apps. If desktop Linux gets anything from outside of FOSS, itâs electron. See Spotify, discord, slack, vscode⌠list goes on. I donât think a for profit company has provided a GTK or qt app for Linux in the last 20 years.
I applaud your efforts but this is a supposed trillion dollar company with a product that probably has thousands of electron apps in its training set. They should be paying you.
Electron apps donât work well across all of the Linux distributions if youâre doing anything that isnât very simple.
The comment was that the Electron apps arenât being released for Linux even when they exist because Linux is so much harder to support, even in Electron.
If they donât have resources (or desire) to keep the Electron app working on all the Linux distros then they definitely wonât have the resources to write a completely separate GTK app for the few Linux users.
Anything that isnât very simple? Like a llm chat interface? If zoom and Microsoft Teams of all people can do it, anthropic should be able to.
Have you considered that maybe their code is just bad?
[dead]
> I donât think a for profit company has provided a GTK or qt app for Linux in the last 20 years.
DaVinci resolve is QT. But making a video editor performant in Electron is even harder than writing it in C++..
There's a similar project for Codex Desktop: https://github.com/ilysenko/codex-desktop-linux.
After going through this process to get codex installed on Linux I'm honestly baffled why OpenAI doesn't have an official port. Though I haven't tested every part of the app, everything works as intended, even got computer use working without any issues.
Have you considered flatpak support? I know it's has its rough edges, but I use many apps across arch/Fedora/Ubuntu that are delivered as a single flatpak.
I've looked on the rare occasion, but no one is asking for it on the repo, so hadn't been a priority like other distribution channels.
It's great that I can ship one item for all platforms, but Flatpack doesn't solve the compatibility discovery problem for me.
More context in my reply to the comment linked here :https://news.ycombinator.com/item?id=48434436#48435661
Just put some instructions on your website telling the user what to type into their shell? If they can't handle that, I guess it's the browser client.
If only Anthropic had some kind of automated tool that was good at porting software
Even if you can create infinite software you still have to be very intentional about what youâre choosing to work on.
Thereâs still a cost to testing, support, planning, etc even if coding is now âfreeâ
Anthropic claims 8-fold productivity increase since 2025. If even that isn't enough to enable support for Linux, I don't know what it is.
I didn't say that they _couldn't_, but it clearly isn't a priority for them. They still have the same opportunity cost any other engineering team faces.
They can work on feature X or feature Y -- which is the better choice?
Apparently they don't think Linux support is significant. I doubt the lack of support is due to technical constraints.
They explicitly did not claim this in the blog post
[flagged]
If only Anthropic had some kind of automated testing, support, planning machine.
You wouldn't run an engineering company with 500 engineers reporting directly to the CEO.
AI doesn't solve this. You need humans who can understand and verify what is being made.
You forgot the *allegedly in there.
It doesn't sound like that's the bottleneck.
It's getting exponentially better, and everything is getting cheaper, and it's the end of SaaS!
But I am still waiting. If everything was as the hype folks said it was, we would all be fucked already.
What do you miss from the Desktop app that the CLI doesnât cover? Iâm mostly on Linux too and have just been using the CLI, so Iâm curious.
I don't think the CLI offers daily routines under the Anthropic subscription anymore?
There's also the cross conversation memory search, which uses a different conversation dataset (the Claude Web / Claude.AI conversations) than Claude Code does. I'm not even sure Claude Code does cross conversation search?
The Desktop interface also presents Markdown as formatted text and presents artifacts (especially interactive ones) better than the CLI can.
All that said - I actually use the CLI for nearly everything (even on Windows). Rather than use Claude Desktop for daily "routines" that are capped at 15 total cron-jobs and use extra usage credits, I think I'll continue building my own minimal harness and move my routines to models from other providers.
> There's also the cross conversation memory search, which uses a different conversation dataset (the Claude Web / Claude.AI conversations) than Claude Code does. I'm not even sure Claude Code does cross conversation search?
This is one of the first things I âfixedâ with skills and hooks. I index every conversation in SQLite and have a skill which knows what to do when I ask it to search the index. I had to avoid the word memory because itâs too tied up in other parts of the context. It even indexes across my different machines. I set this up because I have terrible context discipline. Iâll go off on a tangent in one context and start planning and sometimes implementing something based on that thread which really deserves its own context. Afterward I can create the new context and move relevant bits to it, but Iâd lose that initial starting conversation which inherently has more data than the summary in the new context.
I also use a few different related contexts. One where Iâm building a game engine in zig and another talking about game ideas. Thereâs a lot of back and forth going on there which needs some shared context. I solve this with a combination of Claude.md references and that searchable session index.
Everything I do with scheduled tasks are just wired up with systemd and simple scripts. No LLM in the critical execution path. Again a skill tells CC how I manage those scheduled things so I just have to say something like ârun this every day at midnightâ and CC has reliably taken care of the rest.
Why not just allow it to grep ~/.claude
> I don't think the CLI offers daily routines under the Anthropic subscription anymore?
It (Claude Code) does, I discovered it by accident recently, having never used daily routines before. Haven't touched Claude Desktop at all, outside of playing with it for 30 mins or so months ago.
TLDR: I used Claude Code to build a command that scrapes job postings from a few employers I am interested in (it is a bit more complicated than that, but that's the gist). At the end CC asked me "do you want me to re-run it daily?" I said yes, and it generated a daily routine and gave me a URL to my anthropic account page where I can see all my daily routines.
There, it says that I am currently using up 1 out of 15 "free" daily routines that come with my personal subscription, and I would have to pay extra if I want to have more than 15 active at a time (I assume by switching to per-token pricing for anything beyond 15, but not sure).
> All that said - I actually use the CLI for nearly everything (even on Windows).
I also haven't touched routines, but I use cc to write automation tasks that will integrate a model when I need an inference layer. Which I also did before routines..
Have people actually been using routines effectively?
That makes sense. Maybe the existing VS Code integration is the place to solve part of this for coding workflows: formatted output, artifacts, and search UI all seem useful next to the editor. The Claude.ai conversation corpus/search seems like the part that may need deeper account integration.
Mainly: true sandbox separation. I don't want the model having full access to my machine. With a dump format that Claude understands, I'm able to pass only the files I want Claude to see, and he can't break any of them. I don't care about setting up access lists and so on. I don't trust that the cli product will be properly sanboxed and it's quite clear their software offerings are largely aigen code, and I catch bugs from Claude every day. I also get useful stuff, so it's worth it, but definitely not worth it, imo, to grant it any access to my machine.
There are a number of utilities for this. I use jai: https://jai.scs.stanford.edu/ but also have seen nono: https://github.com/always-further/nono smolvm: https://github.com/smol-machines/smolvm zerobox https://github.com/afshinm/zerobox and matchlock https://github.com/jingkaihe/matchlock
They all have pros and cons. Pick the one that suits you best. Then you're also agent harness flexible (I use opencode).
As a jai and linux user, myself, looking at nono's os-sandbox (from here [1]) it seems nice too. Thanks for the recommend I was looking for something that might be nice on Mac and nono seems good to recommend to coworkers and the like.
I would like a solution that was itself not largely written by an AI
I've been using jai [1] for sandboxing on linux (although I use opencode and local models and not claude code) and I'm pretty satisfied with it. It comes in three different modes [2]: casual mode, strict mode, and bare mode. Here's some descriptions of each mode:
Casual mode [3]: > Your home directory is mounted as a copy-on-write overlay. The jailed process sees your real files, but writes go to $HOME/.jai/default.changes instead of modifying originals, except in the directory where you ran jai. Your current working directory grants full read/write access to code in the jail (unless suppressed with -D). So files deleted there are really gone. /tmp and /var/tmp are private. The rest of the filesystem is read-only.
Strict mode [4]: > The process runs as the unprivileged jai system user, not as you. Home directory is an empty private directory at $HOME/.jai/<name>.home. Granted directories (via -d or cwd) are exposed with id-mapped mounts â files look like they are owned by jai inside the jail. Because the process has a different UID, it cannot read files outside your home directory that are only accessible to your user â this is where confidentiality comes from.
Bare mode [5]: > Home directory is an empty private directory, like strict mode. But the process runs as your user, not as jai. This means it cannot provide confidentiality â the process can still read any file accessible to your UID outside the home directory.
I've always ran my stuff in casual so far just so my whole computer doesn't get rimraffed :P. but I'm thinking of switching to just strict mode, but haven't really vibe coded in a while so I haven't tried it yet.
[1]: https://jai.scs.stanford.edu/
[2]: https://jai.scs.stanford.edu/modes.html
[3]: https://jai.scs.stanford.edu/modes.html#casual-mode
[dead]
The cli works on regular sandboxes just fine (podman, docker, bwrap, etc).
Sandboxing a GUI is typically more operational overhead than sandboxing a cli (mounting compositor sockets, GPU access, etc).
If you donât trust the CLI version to be properly sandbox d, why would the desktop one be?
1. Same experience as my non-Linux coworkers, so we can share learnings and processes
2. Scheduled tasks that run locally ( https://support.claude.com/en/articles/13854387-schedule-rec... ) importantly different from Claude Code routines
3. Multiple projects/isolated memories in the same folder
4. Better UI
> Scheduled tasks that run locally ( https://support.claude.com/en/articles/13854387-schedule-rec... ) importantly different from Claude Code routines
What do people do with these? I don't use Claude but when I did I couldn't think of anything useful to do with the routines. I'm probably not being imaginative enough.
At work, I have my Claude set up to go through the issue tracker, source control, dashboards, team Slack channels, calendar appointments, and have it look for things like upcoming scheduling issues and deadlines that might get tough. A lot of those services need a corporate VPN or access to my local machine for the LLM to get the information right.
Nothing I can't do myself (and generally I do keep an eye on that sort of thing), but it did catch a holiday for my foreign team members that seemed to have gone unnoticed, and remarked about a status mismatch between Jira and source control that made the dashboard misrepresent progress. It's not much, but it's an extra little check that works quite well.
Another trick I'm experimenting with is having Claude rebase my open PRs waiting for review every day, and auto-solving conflicts when they arise. I don't trust it enough to let it push code to the repository, but I think I have the prompt set up in such a way that I might soon start using it.
Cowork is pretty useful for non-technical folk for things you'd traditionally just write a quick little bash or python script for (which really, is what Cowork is doing behind the scenes anyway).
I've gotten good results using it at work for keeping track of expense receipts. I dump them into an "Inbox" folder and Claude will OCR them, convert any images to PDF, rename, and move them into year/month/date folders and classify them (cost centers, based on a mapping and examples I gave it). This runs daily, checking the Inbox directory for new items.
My next step is getting it to pull them from my email automatically for me as well, or from a specific alias so when I take a pic of a receipt on the go I can just email it and have Claude rename and organize it for me, then it all gets sent off to AP at the end of the month.
Non technical knowledge workers have all kinds of little admin tasks like that which Cowork can do for them, where previously they lacked the skills or will to just learn some python and script it themselves.
Iâd like the thing to read my mail twice a day and tell me if I missed something important.
Havenât set it up because Iâm horrified by the thought of it reading my mail. Doubly so if it decides to do anything other than telling me if I missed something important.
Some good ideas here: https://posthog.com/blog/making-claude-cowork-actually-usefu...
> Multiple projects/isolated memories in the same folder
I cannot stand this and do not know how to start a new project/session in a new folder. Even if I select a new folder in the UI when typing the first prompt of a new session, it keeps going back to the first folder I created. For this reason alone I am thinking of going to the CLI. But if anyone has any answers, I am all ears.
Or, what does the Desktop app does that the webpage doesn't do?
I find interesting that so many people say that this is a hard problem, while Discord puts this nugget:
> Are you a Linux user? If so, are you sick of that lovely modal we made to tell you that thereâs an update you need to go manually install? IF SO, boy do I have good news for you. Weâve ported our Rust-based updater to Linux, allowing Linux to update itself just like on Windows. Additionally, we now support .rpm and .pkg.tar.zst package formats for installation.
They have more challenging clients: have to deal with screencapture, audio capture, audio routing, meanwhile supporting 3 different package repositories. You just have to accept that you should be updating your build/runtime dependencies with each version as long as they fix your underlying problems. Having a single binary that you release and works, implies that you are shipping every library your binary depends on. Windows takes care of that with winsxs, Linux asks you to do it yourself.
What's the market for linux users who want an electron app so they can vibecode in a visual studio fork but wont just build it themselves nor do they want to clone and build someone else's repo
No horse in this race because I donât want a Claude app, but the median Linux user is increasingly just a normal person who doesnât want spying telemetry or ads or whatever
The median linux pc user is on Chrome OS from their school :p
I presume they meant if you filter out for Chrome and Android ;)
Not sure, but I would happily take half the pay of any developer at Anthropic to do that role for them if it gets me Claude Desktop on my Linux box, I do not like third party hacks of Windows Electron apps made to work on Linux, always makes me uncomfortable.
I'm still surprised at how many developers still turn their noses up at using Linux.
Like... You already use Docker and deploy to K8S... On Linux...
I donât really care about the OS. I want a beefy laptop with a good keyboard and trackpad, long battery life, and a crisp screen. Preferably very silent, bonus points for a clean design. Thatâs the value proposition of a MacBook.
There are many laptops with similar specs that you can run Linux on, and for less money
Not really. The only thing that comes close IMHO are the top shelf Lenovo X1 Carbon, but even those come with several caveats compared to MacBooks, and the M4/M5 chips are ridiculously powerful.
Iâm open for suggestions though
I get it. I wish there were more great laptop makers. I had a maxed out 16in M2 Max MacBook Pro, now I have an 15in M3 MBA. I also have a maxed out HP G1A Ultra running Fedora. Theyâre all excellent.
I also care about my desktop supporting consumer electronics without having to waste an afternoon debugging Bluetooth drivers every two weeks
Thankfully, it has been many years since I had to debug Bluetooth drivers (or anything of that ilk) on Linux.
Thatâs very much not the same thing though?
It kind of is?
Why would you not want your development environment to be as close to your deployment environment as possible? Even MacOS bash commands have hiccups every so often. In my experience working with Linux developers, they seem to know the internals of the servers much better and can optimize/debug prod fast - and this understanding is only compounded with LLMs.
I'm sure many developers would be equally talented at debugging such issues if we deployed on Windows or MacOS, but virtually no one does that.
I do other things on my computer apart from bash.
Docker was designed for Linux, and on Windows you have to run a VM just to let Docker function.
[dead]
People buy Apple products for the same reason people buy BMWs
To drive fast?
Desktop and server are two wildly different support surfaces
Fair, but itâs electron. They can just add a new target and recompile the native libraries theyâre using for Linux.
Itâs really not that hard.
> Anthropic, please ship an official Claude Desktop for Linux
Which desktop? Which destop version? Which libc? Which versions of the gazillion of other libs it depends on?
I can take a Total Commander version from a time when it was called "Windows Commander", compiled for Win95, and it would still run in latest updated Win11. Try that with a linux program!
(BTW, for Total Commander it works the other way too: latest Tcmd still runs in Win95.)
This was covered in the issue itself, in fact the issue is pretty well documented with regards to the packaging:
> Publish an official Claude Desktop build for Linux, targeting the two current Ubuntu LTS releases (and Debian) as a signed .deb via an Anthropic-operated apt repository, using the same distribution pipeline Claude Code already uses for Linux.
Also Flatpak or AppImage would make this accessible to every other distro. Alternatively you could run the deb with a Podman Toolbox.
Your point about backwards compatibility with Windows goes both ways, I have old games that I can _only_ run on Linux as they don't work on modern versions of Windows.
Personally I donât understand why Claude Code doesnât have a mode to make text green and characters come down from the top of the screen individually, like in The Matrix.
Massively bugs me. I have to wear green sunglasses, change the language to Japanese, and turn my monitor sideways to get any real work done nowadays.
Get a daily email with the the top stories from Hacker News. No spam, unsubscribe at any time.