llm/9ad11e16-7acb-4923-bb7e-5d14cd36cf3f/batch-4-b4703174-af3d-4849-b841-8692b035aefc-input.json
The following is content for you to classify. Do not respond to the comments—classify them.
<topics>
1. Novelty vs. Rebranding Old Tech
Related: Commenters frequently note that SSHing into a remote machine is a standard practice that has existed for decades, comparing the article's framing to the infamous 'Dropbox comment' on Hacker News. Users express confusion over why a basic remote administration workflow is being presented as a new concept called 'Doom Coding,' while others argue that the integration of LLM agents like Claude Code provides a fresh layer of utility to the established setup.
2. Mobile Ergonomics and Friction
Related: A major theme is the physical difficulty of coding on a smartphone. Commenters discuss the pain of typing on touchscreens, the inability to view side-by-side diffs effectively on small screens, and the general clumsiness of managing terminal windows without a physical keyboard. Many users argue that while the setup is technically possible, the lack of screen real estate and input precision makes it impractical for serious engineering work.
3. Chat-Based and Async Interfaces
Related: To bypass the limitations of mobile terminal UIs, users suggest and share workflows that use chat interfaces like Telegram, Email, or WhatsApp to interact with coding agents. These setups allow users to send prompts and approve pull requests via natural language messages or buttons, treating the coding process as an asynchronous conversation rather than a real-time terminal session, which resolves many formatting and typing issues.
4. Session Persistence with Tmux
Related: Technical advice heavily features `tmux` (terminal multiplexer) as an essential tool for this workflow. Commenters explain that standard SSH connections drop when a mobile device sleeps or switches networks, whereas `tmux` allows the session to persist on the host machine. This enables users to seamlessly resume their work exactly where they left off, regardless of connectivity interruptions or app switching.
5. Alternative Mobile Environments
Related: Users discuss various apps and environments that serve as alternatives to the article's Termius setup. Android users advocate for Termux, which provides a local Linux environment without needing a remote host, while iOS users recommend Blink Shell or Shellfish for better Mosh and SSH integration. Some also mention using native Pixel terminal features or running local LLMs directly on the device to avoid latency and dependency on internet access.
6. Mental Health and Downtime
Related: The concept of 'Doom Coding' sparks a philosophical debate about work-life balance. Commenters question the healthiness of filling every moment of downtime with productivity, suggesting that time spent waiting or commuting might be better used for rest, observation, or 'micro-exercises.' There is criticism of the compulsion to code constantly, with some arguing that being present in social situations or relaxing is more valuable than 'vibe coding' on a phone.
7. Reliability and Network Latency
Related: The discussion highlights the technical challenges of mobile connectivity, specifically latency and dropped connections. Tools like Mosh (Mobile Shell) are frequently recommended over standard SSH because they are designed to handle intermittent networks and roaming between Wi-Fi and cellular data without killing the session. Tailscale is praised for simplifying the networking layer, though some prefer Wireguard for a lighter-weight alternative.
8. Wake-on-LAN and Power Usage
Related: Critiques of the requirement to leave a computer running 24/7 lead to discussions on energy efficiency and remote wake capabilities. Users share solutions using Wake-on-LAN (WOL) via routers or Raspberry Pis to turn on powerful machines only when needed. Others mention macOS settings like `caffeinate` or specific power configurations to ensure the host machine remains accessible without wasting electricity around the clock.
9. Verification and Code Review
Related: A critical point raised is the danger of 'fire-and-forget' coding with LLMs on mobile. Users note that verifying the code generated by AI is difficult on a phone due to limited visibility and syntax highlighting. The conversation touches on the risks of deploying code or merging pull requests without the ability to properly audit the logic or run tests, suggesting that mobile workflows are better suited for prototyping than production engineering.
10. Security Risks of Remote Access
Related: Several commenters express concern over the security implications of the proposed setup. Issues include leaving a computer unlocked at home, opening SSH ports (even via VPN), and the potential for bad actors to gain access to a local network. Discussions involve best practices such as using key-based authentication, locking the keychain via command line, and the general risks of exposing a development machine to remote connections.
11. Vibe Coding vs. Engineering
Related: There is a distinction drawn between 'vibe coding'—prompting an LLM to generate scripts or apps—and traditional software engineering. Some users view this workflow as 'slop' or merely prompting, lacking the depth of actual problem-solving, while others find it empowering for quick prototypes or hobby projects. This theme reflects broader tensions regarding the changing nature of software development in the age of generative AI.
12. Web-Based and Cloud Alternatives
Related: Users suggest that browser-based solutions like GitHub Codespaces, Replit, or self-hosted web IDEs (like `opencode`) offer a superior experience to terminal tunneling. These tools often provide better UI elements for mobile browsers and abstract away the need to manage hardware or VPNs, allowing users to code via a web interface that handles state management and environments automatically.
13. Social Acceptability
Related: The humorous notion of 'coding at the club' mentioned in the article draws specific reactions. Commenters joke about or criticize the anti-social nature of pulling out a phone to code in social settings like parties or bars. This overlaps with the 'doom scrolling' comparison, with some users suggesting that using a phone for work in social spaces is just as rude or 'gross' as using it for social media.
14. Hardware Workarounds
Related: To mitigate the interface limitations of smartphones, users discuss hardware additions such as folding phones, external Bluetooth keyboards, and 'thin client' setups using old laptops or tablets. Some mention specific devices like the 'Clicks' keyboard case or using AR glasses, highlighting that while the phone provides the compute or connection, better peripherals are often needed for actual productivity.
15. Agentic Workflows and Automation
Related: Discussions extend beyond simple coding to fully automated agentic workflows. Users describe setups where agents running on home servers are triggered via mobile to perform tasks, run scans, or manage infrastructure autonomously. This shifts the mobile interaction from writing code to orchestrating agents that perform the heavy lifting, reporting back status via push notifications or chat messages.
16. Subscription Fatigue vs. Open Source
Related: Comments reflect a wariness of paid subscriptions for tools like Claude Pro, Tailscale, or premium terminal apps. Users advocate for open-source alternatives such as Ollama for local LLMs, Wireguard for VPNs, and various free terminal emulators. There is a sentiment that basic remote coding shouldn't require a stack of monthly fees when free tools can achieve similar results with slightly more configuration.
17. Educational Value of LLMs
Related: Some users highlight the learning aspect of this workflow, noting that interacting with Claude Code allows them to understand new concepts (like API behaviors or network scanning) through the generative act. This counters the 'slop' narrative, suggesting that 'doom coding' can be a valid educational tool for hobbyists or those looking to understand how their devices and networks function.
18. Thin Client Philosophy
Related: The thread revisits the concept of thin clients, where the mobile device acts merely as a window into a powerful remote machine. Users compare this to historical mainframe/terminal workflows, arguing that the phone doesn't need to be powerful if it just renders text from a desktop. This philosophy underpins the preference for SSH/Mosh over running heavy local IDEs on the phone.
19. Code Quality and Maintenance
Related: Skepticism arises regarding the quality of code produced during short mobile bursts. Commenters worry about creating 'spaghetti code' or unmaintainable projects when working in fragmented sessions on a phone. However, others argue that for small utilities, prototypes, or personal tools, the quality is sufficient, and the ability to iterate quickly from anywhere outweighs the lack of rigorous structure.
20. Gatekeeping vs. Encouragement
Related: The comment section illustrates a divide between experienced users who gatekeep the term 'coding' or mock the setup, and those who encourage the experimentation. While some dismiss the article as trivial, others defend the author's enthusiasm, noting that lowering the barrier to entry and finding new ways to engage with technology is positive, even if the underlying methods are not strictly new.
0. Does not fit well in any category
</topics>
<comments_to_classify>
[
{
"id": "46524874",
"text": "been using the same setup for the past 2-3 months now. My company gave the employees old mac pro (intel) for free to use for whatever purpose they want to. I was using AWS for most of my personal projects which I have now migrated to this mac. I use the app 'Amphetamine' to not let the mac sleep, and rest of the setups are the same with Tailscale + termius etc\n\nFun fact: once you get ssh access to mac, you can control almost anything running on it. Like I added my mac air under termius, and I could mute/unmute any videos playing on chrome using osascript from my iphone :)"
}
,
{
"id": "46518110",
"text": "We need to take this idea further. Instead of \"remote first\", I'm waiting for the first company that will bodly declare \"you can do all your work on your phone\".\n\nI'm tired of lugging my laptop around. Let me work from the beach with my phone and ar glasses."
}
,
{
"id": "46518292",
"text": "Please hire me when you make this happen! The tinkering started because I wanted to go outside to code but sitting with your laptop in the park is too strange."
}
,
{
"id": "46518560",
"text": "I've used this for a decade and still use it. Easy compatibility with tmux, can ssh, use llm, etc.\n\nhttps://github.com/fandreuz/TUI-ConsoleLauncher"
}
,
{
"id": "46518915",
"text": "> sitting with your laptop in the park is too strange.\n\nWhy should that be strange?"
}
,
{
"id": "46518939",
"text": "Just install Termux and you're good to go."
}
,
{
"id": "46527109",
"text": "I already have a similar setup for developing on remote servers I've been using with tmux + goose-cli + claude via openrouter. I've found that anything claude 4.x and above becomes very expensive very quickly, with 3.7 being almost negligibly inexpensive. I'd find myself using $30 dollars of credits in a few hours of development on a small scope project. I might give the claude CLI a look specifically, but I don't expect great savings and I will miss my AI-provider-agnostic setup. Is everyone using this technology just programming as they go about their day and burning like fifty to a hundred bucks while doing so?"
}
,
{
"id": "46525059",
"text": "How do you avoid doom-coding while learning or experimenting? – Ask HN\n\nLately I have observed this algo in myself while learning something new. I constantly code for very short bursts sometimes on the phone or laptop at night, keep jumping between tools and end up consuming more than creating. It comes off as productive but seldom compounds.\n\nA straightforward explanation that has provided me with a helpful point of thought is.\n\nMake a mode selection.\n\nDid conclusions actually occur?\n\nMost doom-coding sessions are loaded with input, no closure.\n\nThere are 2 small changes that improved it for me.\n\nStart sessions with a small, visible output goal (one function, one note, one commit).\n\nTime-box input aggressively. I stop scrolling after 15-20 minutes of scrolling.\n\nAt the conclusion of every session, I would write what I would do next, even if I don’t do it. ~\n\nWanting to know how others do this.\n\nDo you intentionally separate learning sessions and building sessions?\n\nDo you have any heuristics to know when you have avoided input?"
}
,
{
"id": "46523956",
"text": "I did show hn just yesterday\nyou don't need tailscale or any 3rd party server. Just use webrtc and it's just your mobile and laptop. end 2 end encrypted. no 3rd party dependency.\n\nhttps://news.ycombinator.com/item?id=46514587"
}
,
{
"id": "46527905",
"text": "I see the article is still on the front page, I'd ignored it yesterday so I took a quick read. I find, being older, trying to read the tiny fonts on a phone to be difficult after a few minutes, otherwise cool idea.\n\nOr, I thought it was cool until this passage reminded me, \"coded a prototype in my downtime\" that down time is supposed to be down time."
}
,
{
"id": "46528197",
"text": "> down time is supposed to be down time.\n\nLife doesn't have down time. Should we avoid learning new things because no one is paying us to learn?\n\nOne of my favorite uses of AI is to quickly make some simple 'hello world' level application that I can run using a given technology.\n\nDon't know what an MCP server is? Boot up Kiro and tell it you want to make a sample MCP server and ask it for suggestions on what the MCP server should do. A relatively short while later, with a lot of that time being spent letting AI do it's thing, and you can have an MCP server running on your computer. You have an AI waiting for you to ask questions about why the MCP server does x y or z or how can you get the server to do a, b or c etc\n\nAs someone who learns a lot better from doing or seeing vs reading specs, this has been monumentally more efficient than searching the web for a good blog post explaining the concept.\n\nAnd when I'm doing these learning exercises, I naturally lean towards the domain my company is in because it's easier to visualize how a concept could be implemented into a workflow when I understand the current pain points of that workflow.\n\nI'm not going home and pulling in story's from my board and working on them (generally), I'm teaching myself new concepts in a way that also positions be to contribute better to my employer."
}
,
{
"id": "46528019",
"text": "Is being able to SSH into your home machine that easy these days? I never had a strong enough reason to spend more than a few minutes trying, but I always suspected that my ISP would make this harder for me than I would hope."
}
,
{
"id": "46528813",
"text": "That's the whole point of Tailscale or just any VPN really : it doesn't matter what your ISP says, as long as you can establish a connection to the outside, the outside can connect back. Tailscale just makes that easier if you are not familiar with VPN setup.\n\nFWIW typically ISP blocks port related to spamming, so usually they block ports related to emails, e.g. SMTP, I believe DNS too, but other ports no problem.\n\nThat being said it's quite a silly use case IMHO. If you want to work on a project from \"anywhere\" then put your project on your server accessible from anywhere, that's literally what servers are for and they cost the price of a coffee per month."
}
,
{
"id": "46523061",
"text": "I've been using a similar workflow for the past couple of months.Heavily inspired by Simon Willison’s approach of building micro tools, I’ve started building micro-utilities. I do this mostly while I'm commuting or outside or waiting for something at work.\n\nInstead of just jotting down an idea in a notes app (and it sitting there for eternity), I’ll open up Jules, describe the tool, and have it scaffold the HTML. I have Cloudflare Pages hooked up to the repo—once Jules submits the PR, the preview branch builds automatically and I can verify the result on my phone immediately."
}
,
{
"id": "46523847",
"text": "Whats the cycle time here? This work flow makes sense to me."
}
,
{
"id": "46525782",
"text": "It’s largely asynchronous for me. I'll trigger the generation and come back to the PR whenever I'm free.\n\nI'd say the cycle time largely depends on the complexity of the tools you are building. I've built a movie shelf hooking up with trakt.tv under 30 minutes and a mermaidJS diagram editor spanning multiple sessions and couple of days."
}
,
{
"id": "46518261",
"text": "I'm using exe.dev for something like this. Well, from a laptop, but others have done it from their phone.\n\nI'd link to a blog post about my setup, but I'm still writing it. Here's someone else's blog post:\n\nhttps://commaok.xyz/ai/just-in-time-software/"
}
,
{
"id": "46524754",
"text": "Been using exactly this setup for a year now, works great.\nHave to be on the same WiFi to install from Xcode to iPhone. There is a “workaround” having it deploy to TestFlight, but it’s slow.\nLooking for a way to forward mDNS over VPN, to bad iPhone/Tailscale don’t support it. Only possibility I found is to have a separate mobile router that support forwarding mDNS."
}
,
{
"id": "46524807",
"text": "Hmm, you could probably setup ad hoc builds and send them off to Firebase App Distribution or a similar service and get them a bit faster. Still pretty cumbersome but it skips the slow signing/slow uploads/slow processing that Test Flight provides for users."
}
,
{
"id": "46520561",
"text": "I recommend https://happy.engineering/ . It is very easy to set up. I can have an instance in a container which contains my repository and lots of packages/binaries necessary for the work. I can then use the different binaries to run commands in the container. I was able to easily do `ls -la` in the container and email that to myself, all done from my phone. You can also connect it to applescript and whatnot in order to send sms messages, or you can connect to whatsapp. I was able to make it extract the top 5 headlines on hacker news, get the top ideas being discussed in the comments for each submission, and send all of that into my Apple Reminders for me to read on my phone.\n\nNo VPN needed."
}
,
{
"id": "46520650",
"text": "I'm looking at Opencode and it might be better because it allows you to abort a task. VPN needed."
}
,
{
"id": "46525079",
"text": "I'm using this setup as well, and I've been as far as writing a small Telegram bot to send input to Claude when it's stopped running via a Stop Hook\n\nhttps://github.com/PABannier/claude-telegram-bot"
}
,
{
"id": "46519025",
"text": "If you have GitHub copilot you can create github issues and assign them to copilot. All you need is a browser."
}
,
{
"id": "46522294",
"text": "I use Prompt, Ever Terminal, Whisper, EC2 and Claude Code.\n\nI can build anything with it. Having Claude on top of a terraform repo lets me fully control my infra. Claude is so good at AWS and terraform, and it even found a $3k monthly accidental spend I had running (also sent a refund request to hopefully get some credit back).\n\nAlso have a Claude driven CI workflow in GitHub to help keep everything on track.\n\nHaving full access to the Claude Code TUI is so much better than the web or iOS interface, plus everything runs on your own setup.\n\nAnd agree it has replaced doom scrolling / useless new reading."
}
,
{
"id": "46525647",
"text": "I have been building a code from phone web app and doogfooding a lot - https://x.com/knivets/status/2003023386080092235?s=46"
}
,
{
"id": "46521521",
"text": "I don’t get it. How is this different from using the Claude iOS (and I assume Android) native app and use their “Code” option. It fires up a Claude Code session in the cloud and you can vibe code anything while on the toilet."
}
,
{
"id": "46521960",
"text": "DIY culture I guess, but yea both Claude and Codex have native phone apps that run the agent on a cloud VM and can push PRs."
}
,
{
"id": "46522219",
"text": "Claude iOS is way worse. You don’t get the full tui."
}
,
{
"id": "46524501",
"text": "If you need this article to get the idea of using Claude Code from your phone, you won’t build anything substantial anyway."
}
,
{
"id": "46524775",
"text": "Great! Another shallow dismissal is just what everyone needs right now! I don’t understand this kind of gate keeping.\n\nAI has been changing more rapidly than any other technology I have encountered in my life. It’s absolutely nobody’s fault for not keeping up with it or arriving late to the party, and telling them they should rather just stop because they won’t get it anyway is just awful behaviour."
}
,
{
"id": "46524520",
"text": "Why?"
}
,
{
"id": "46530472",
"text": "Because, obviously, you should be spending all of your waking time thinking about LLMs, agents, and how you can integrate them into every part of your life. If you have been living properly in the age of impending-AGI, you would have already been desperately seeking more opportunities to interact with these systems. That desperation would have led you to independently discover agents and all the ways you could couple yourself to them even when away from your computer. Are you a parent stuck at home experiencing life with your kids instead of sitting at your desk? Why not escape such a hellscape by whipping out your phone and building a SaaS from your phone while your offspring annoys you with requests for attention and meaningless affection?\n\n---\n\nReally, this whole environment of 'coding from my phone with dozens of agents while I'm doing the laundry' feels like satire of the sorts of things we used to laugh at on Linkedin."
}
,
{
"id": "46525453",
"text": "This makes me worry about the future where I will be unable to hire anyone that actually knows how to solve novel engineering problems via programming with a real keyboard on a real computer with their actual brains.\n\nTo be honest it is already starting to feel that way."
}
,
{
"id": "46519472",
"text": "I really want to use and like this, but I feel like I need a different UX / UI for my phone. I think adoption of this development workflow at large is going to be a design challenge more than a setup/devops one."
}
,
{
"id": "46523353",
"text": "I agree- I think there is a good opportunity for a more slow-paced, thoughtful UX on mobile."
}
,
{
"id": "46520460",
"text": "I've seen this concept a few times recently and am interested.\n\nHowever, what's the benefit over just using the \"Claude Code for Web\" feature built into the Claude Code mobile app?\n\nIt clones your repo into a VM which has a bunch of dev tools installed, you can install additional packages, set env vars, and then prompt it remotely. The sessions can be continued from the web and desktop apps, and it can even be \"teleported\" into the terminal app when back at a laptop/desktop.\n\nWould be great to understand what the differences / advantages of OP approach are."
}
,
{
"id": "46520839",
"text": "I feel like there’s something special about connecting to a server to build and deploying on the same server. Claude Code on the web lets you connect to a repo, test the code, and deploy it, but then you have to host the app and data somewhere else to take it live. IMO the ideal is doing everything in one place and it seems like a lot of dev tools are going in that direction too (v0, val town, deno deploy)."
}
,
{
"id": "46520749",
"text": "I’ve only used web codex version but everything about it was slower than what’s described here, broken flows, more rate limited and impossible to “human in the loop” before a PR."
}
,
{
"id": "46522256",
"text": "The Claude code tui is so nice. The web and iOS apps neuter it weirdly."
}
,
{
"id": "46522185",
"text": "\"2. Make sure your computer is ON and UNLOCKED\nWhen disconnecting/reconnecting power, make sure you unlock the computer. I've ran into this issue one too many times.\"\n\n- this is the biggest problem that needs to be solved\n\n- i dont want to keep my computer running 24x7 wasting power for stuff like this\n\n- why not make a robotic arm that you keep at the computer table which can use open cv to plug the computer on when required?"
}
,
{
"id": "46522415",
"text": "Lookup \"wake-on-lan\"."
}
,
{
"id": "46523920",
"text": "I'm not sure why I'm having so much difficulty with it, but I've never been able to get this to work on my machines despite my searching."
}
,
{
"id": "46517648",
"text": "Just because you can doesn't mean you should. But congrats on launching!"
}
,
{
"id": "46518671",
"text": "Early on in my programming life, I had very limited access to a computer. I did much of my coding in my head while walking around. In some cases, I'd literally write code in my head and dump it out when I had computer access, but abstract and creative problem solving were especially natural in a detached setting. I truly believe this time was more valuable than the time at the keyboard.\n\nIf anything, I want to do more of that: get away from the device to let my mind wander. \"Doom\" coding sounds apt."
}
,
{
"id": "46522698",
"text": "This is cute.\n\nMy personal world changed when I discovered Nix On Droid and cloned my personal Claude Code flake which uses pnpm to keep a rolling bleeding edge version with revision controlled dots. I started using Nvim /avante and open router shortly after that, also via Nix on Droid. Game changer for those long subway rides."
}
,
{
"id": "46517655",
"text": "It’s a simple idea but one that hadn’t occurred to me yet.\n\nI spend hours each week riding transit, and use Claude for a bunch of side projects and have Tailscale set up already, so looks like I’ll be giving this a try this week!\n\nDoom coding might be doomed while I’m in the transbay tube though, with awful cell service…\n\nHow’s the diff review? I rely heavily on the vs code integration for nice side by side diffs, so losing that might be a problem unless there’s some way to launch the diffs into a separate diff viewer app on the phone."
}
,
{
"id": "46518488",
"text": "Let me know how it goes! From the comments above, seems like you can use tmux to keep persistent sessions when you lose Internet connection - but I haven't tried myself.\n\nDiff review is alright. I'm an amateur programmer. Sometimes I don't look at the code claude generates, but when I'm troubleshooting a bug, I'll ask claude to output all recent changes - which satisfies my untrained eye."
}
,
{
"id": "46523947",
"text": "https://github.com/dandavison/delta"
}
,
{
"id": "46518373",
"text": "I don’t compile from my phone but I do write code using it. I use fossil for version control. The in browser editor is good enough to get ideas down. It has great diffs which is also nice. I will check in code and move it to a branch then revisit it when I’m home."
}
,
{
"id": "46518058",
"text": "I would guess a phone is way too small for side by side diffs, and a simple `git diff` would probably be more useful. If you want better syntax highlighting you could setup bat[0] as your difftool. If you insist on a side-by-side view (neo)vim has a diff mode with the -d flag. It is also possible to setup as the difftool that git uses.\n\n[0]: https://github.com/sharkdp/bat"
}
]
</comments_to_classify>
Based on the comments above, assign each to up to 3 relevant topics.
Return ONLY a JSON array with this exact structure (no other text):
[
{
"id": "comment_id_1",
"topics": [
1,
3,
5
]
}
,
{
"id": "comment_id_2",
"topics": [
2
]
}
,
{
"id": "comment_id_3",
"topics": [
0
]
}
,
...
]
Rules:
- Each comment can have 0 to 3 topics
- Use 1-based topic indices for matches
- Use index 0 if the comment does not fit well in any category
- Only assign topics that are genuinely relevant to the comment
Remember: Output ONLY the JSON array, no other text.
50