Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. San Francisco Onion Futures Company(onionfutures.com ↗)
    34comments
  2. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    357comments
  3. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    9comments
  4. SDCC – Small Device C Compiler(sourceforge.net ↗)
    12comments
  5. Science Is Open Software(jepedersen.dk ↗)
    22comments
  6. Cloudflare Quick Tunnels(cloudflare.com ↗)
    272comments
  7. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    1comments
  8. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    74comments
  9. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    18comments
  10. Saving another 100TB of RAM(cloudflare.com ↗)
    59comments
  11. NASA-IBM Lunar Foundation open-Source Geospatial AI Model(usra.edu ↗)
    discuss
  12. How to Write with an LLM(sockpuppet.org ↗)
    309comments
  13. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    1comments
  14. Goroutine Leak Profiles(go.dev ↗)
    2comments
  15. Xcode 27.1 Beta Release Notes(developer.apple.com ↗)
    83comments
  16. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    89comments
  17. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    83comments
  18. OpenJev(openjev.com ↗)
    255comments
  19. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    64comments
  20. The Farnese letter(simonklee.dk ↗)
    6comments
  21. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    12comments
  22. Minimal Phone 2(minimalcompany.com ↗)
    206comments
  23. Cyclomatic Complexity in C#(ndepend.com ↗)
    17comments
  24. Claude Code now reads AGENTS.md if there is no Claude.md(claude.com ↗)
    214comments
  25. LispBM is a concurrent Lisp for microcontrollers with message passing(lispbm.com ↗)
    3comments
  26. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    96comments
  27. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    43comments
  28. Alibaba open-sources AI model that can detect cancer and nearly 150 conditions(scmp.com ↗)
    11comments
  29. How SpaceX streamlined the Raptor engine(construction-physics.com ↗)
    67comments
  30. The Implications of Linguistic Illegibility for LLM Security(arxiv.org ↗)
    26comments

Stop Doom Scrolling, Start Doom Coding: Build via the terminal from your phone

577 pointsby 8mo agogithub.com
405 comments
I used Tailscale, an old laptop, Claude Code, and Termius to code from my phone anywhere I have Internet connection.

Great for parties where you rather be home tinkering.

8mo agoHN ↗

Just because you can doesn't mean you should. But congrats on launching!

8mo agoHN ↗

It’s a simple idea but one that hadn’t occurred to me yet.

I 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!

Doom coding might be doomed while I’m in the transbay tube though, with awful cell service…

How’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.

8mo agoHN ↗

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.

[0]: https://github.com/sharkdp/bat

8mo agoHN ↗

Heh, many years ago I actually started writing a dedicated diff viewer app for Android [0] that specifically had synchronized horizontal scrolling between the two sides, and I remember finding it relatively usable in landscape, and I’m sure modern phones with larger and higher density screens would be even better.

But yeah, you definitely need a native experience to make side by side diffs viable on mobile.

[0] https://github.com/scottbez1/superdiff — I wish I had recorded some videos of the app back then. My code review workflow back then eventually stopped including diff attachments on code review emails, so I abandoned development on it.

8mo agoHN ↗

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.

8mo agoHN ↗

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.

Diff 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.

8mo agoHN ↗

Please mask your identifiers, unless they are already spoofed. You potentially give out a lot of your info to bad actors.

Other than that, love it :)

8mo agoHN ↗

Thanks! I did not sppof! I thought that since it was my local Tailnet, only devices on that net could connect. I just rebuilt the network as a precaution.

8mo agoHN ↗

Most of the time it's probably fine, but we should assume we don't know about all the attack vectors bad actors might use, so better safe than sorry.

I forgot to say that I _absolutely loved_ the photos!

8mo agoHN ↗

Very true! Was that Rumsfeld, right? Unknown unknowns?

And thank you! I'm glad you appreciated the humor. I'm still a novice builder, so the thought of ssh-ing to my home computer from a plane geeks me out. I'm about 20 years late but I'm here now!

8mo agoHN ↗

ha, I've recently been studying the original DOOM source code - does that count?

8mo agoHN ↗

Thank you! My wife was concerned, I'm glad someone out there appreciates the humor

8mo agoHN ↗

Coding on a phone really isn't something new. With tmux a lot of people created crazy things directly on their phone. In some countries this even is the only possibility to code at all, because there are no laptops.

The example use case images are very funny though! :-)

8mo agoHN ↗

Which countries in the world don't sell laptops?

8mo agoHN ↗

there are going to be quite a lot of places where getting a laptop is a considerable expense

8mo agoHN ↗

Why does it have to be a laptop, and why does it need to be new?

There aren't that many places in 2025 where getting a phone with internet is significantly cheaper than getting some scrappy laptop or desktop.

8mo agoHN ↗

> There aren't that many places in 2025 where getting a phone with internet is significantly cheaper than getting some scrappy laptop or desktop.

No, but it's not a choice between a phone and a laptop. You NEED a phone. So you use what you've got. I've done work helping developers in less developed countries and you frequently find they're sending screenshots of code they've written on phones.

8mo agoHN ↗

I think I'll take any LLM slop code over the written-on-phone-by-"developers" slop code.

8mo agoHN ↗

I assume he means people are too poor to have multiple devices, and if you only have one it's probably a phone. That said I'm dubious anyone who only has a phone is doing meaningful coding

8mo agoHN ↗

Huh, makes you wonder if it's actually doing it on his phone or if he has a keyboard and maybe dock and monitor he attaches it to. I suppose my original comment was too broad, there was a point not too long ago when everyone wanted to replace their laptop with their phone. Samsung even let you dual boot linux from your phone with DeX

8mo agoHN ↗

Following that story as it happened, it was all on the phone with the phone keyboard and he somehow made multiple good Neovim plugins including that very popular one (which I use in multiple configs).

8mo agoHN ↗

neovim is probably the only sane way you could code like this on a small screen. everything works pretty much the same way it does on a desktop terminal, the only thing you have to get used to is having so many lines wrapped, and not having quick access to some characters like $ or ^, but they can just be added to the toolbar in termux

8mo agoHN ↗

There's always an edge case. Speaking of which, here's someone who would really benefit from a hard column width limit and limited nesting that modern programmers (particularly ones using various IDEs) so carelessly violate these days.

8mo agoHN ↗

There are countries where the market for PCs and laptops is really tiny and the stores sell them at markups compared to US/European prices. Many of these countries are low wage countries, too, so these markups have a big impact on affordability.

8mo agoHN ↗

Having the means doesn't mean the would-be programmer is in charge of the purse. I got my start coding at the local library because my parents wouldn't get me my own computer until I was in high school.

8mo agoHN ↗

Using this with tmux and various VPN tech. Main issue is scrolling. Termius + tmux don't scroll very well. And I've been led to believe tmux is necessary to keep sessions open when I turn off my phone screen

8mo agoHN ↗

I had this exact issue. I switched to Blink on iOS which seems inferior to Termius in every way except that scrolling tmux actually works.

8mo agoHN ↗

I’m the Blink developer and really curious. Which way do you think Blink is inferior? I think the ssh/mosh tooling is way more powerful, keyboard config, etc. But would love to improve what I can. Currently working on new UI and better access to hosts, so it is a good time.

8mo agoHN ↗

Sorry to have missed this. First, props that Blink is indeed superior in that it actually works.

My recollection is that the primary way Termius "feels better" is the pre-terminal UI (configuring hosts, etc).

But I'm still a daily Blink user, so I don't 100% recall what Termius did to make me think it was nicer, I just remember that scrolling was fucked so I gave up on it.

8mo agoHN ↗

Yes, you need tmux/similar to keep things running.

8mo agoHN ↗

In `~/.tmux.conf` try adding `set -g mouse on`, for mouse scrolling

8mo agoHN ↗

try setting set -g mouse on in your tmux config. With this I'm able to scroll up by using two fingers in termius.

8mo agoHN ↗

Scrolling is quite jenky with Termius - I thought there's a way to keep sessions going when there are intermittent drops in connection via Termius, but for how I've been building, when I lose connection I just restart claude and reexplain the context of the task.

8mo agoHN ↗

you missed the part where you're using tmux to have the same session between your phone and your laptop

8mo agoHN ↗

Just learned about tmux lol - thank you for this!

8mo agoHN ↗

I remember when I started learning coding, and didn't have a computer. I literally used to use my phone to write code - terrible experience, but I was determined

8mo agoHN ↗

I remember when I started learning coding. I didn't have the Internet. It was also terrible and I was also determined.

8mo agoHN ↗

When I started learning coding I had to write my C code on paper and have it sent by mule to the nearby city where the only computer in the area existed. Only a week later I would hear back the result of my programs.

8mo agoHN ↗

I vaguely recall a service in the 90's where you'd write HTML on paper and mail it to them and they would make a website for you...

8mo agoHN ↗

I assume you’re joking, but I have a Cuban acquaintance who actually did something like this. He did everything on paper and even won a national coding competition without ever having actually used a computer. Of course, as soon as he had the opportunity to leave Cuba, he left for good.

8mo agoHN ↗

Imagine doing that on a time share system through a rotary phone...

8mo agoHN ↗

It wasn't coding, but tech support...I was on vacation from my law office IT job. All I had was my PalmPilot, the clip-on modem, and my sister's landline phone system. I spent 2-3 hours one day exchanging email with my firm's law librarian (the only other semi-technical person in the firm) troubleshooting some odd network problem. We got it done, but it was torture, tapping out messages with the Palm's stylus.

8mo agoHN ↗

I wrote C with a compiler running on my Palm Pilot well before smartphones existed yet

8mo agoHN ↗

I remember having some kind of a shell app on my iPod Touch in college and needing to run and find wifi a few times to troubleshoot something at a job I was student working at.

They were fun times :D

8mo agoHN ↗

Luckily I think in this day and age it’d be more viable and not as miserable as an experience - dare I say more accessible

You can connect an external keyboard to your phone and if you can swing getting a cheap IPS panel that displays text clearly enough, you’d have a working set up

Anyway, kudos to you, I love reading stories about determination

8mo agoHN ↗

When I started learning coding, we had to run 50 kilometers through dense jungle, fight Jaguars and jump over snakes, to get to the only computer in the region. I saw a lot of friends die during the daily journey. The teacher was a shaman too, very knowledgeable on C. He would teach us rituals and stuff.

8mo agoHN ↗

That's cute! I had to cross the Darién in both directions to get there!

8mo agoHN ↗

Does this approach work for anyone? For my life, I've found that if I'm not behind the computer then I'm not in a productive situation anyway, even with AI access. I don't have a setting where I can concentrate for a long time and think clearly. For examole when watching children, doing groceries, during transit (probably have to change train in 20m, or walking to next destination). No convenient access to a notepad and pen. On a phone it's also inconvenient to do research.

For me personally I've found two better uses of in-between time:

1. Micro exercises. Really important for health and longevity, especially when it's hard to find dedicated time for exercise.

2. Resting. This means no phone. Yeah hard to resist doom scrolling. Just relaxing muscles and breathing exercises, calming down the nervous system. Increases long term resillience and reduces stress.

So I'm a bit puzzled. If you are in a situation where you can concentrate, why not just pull out a laptop? Typing on phone is really annoying. Even complex conversations with AI I prefer doing on a laptop.

Perhaps there are coding tasks where the prompt is not too complex and it's more about writing code. But you still have to review the result. That's even more annoying on a phone than writing text.

8mo agoHN ↗

I feel similarly. I am happiest and healthiest all round when I focus on the one thing I have chosen to do at any given time rather than figuring out ways to multi-task.

I do however enjoy choosing to do math/coding adjacent activities for leisure or learning sometimes when I'm away from the computer. I've found that it was a net positive in my life to add in puzzles/exercises that I can do with pen and paper in those circumstances.

8mo agoHN ↗

It worked for me for finishing my app (vps+shellfish+gemini-cli), I've done a lot of coding like this on the train and in between sets in the gym, picking up on the more complicated stuff when at home.

But also all of the changes I made from the phone were incremental.

8mo agoHN ↗

^^ I probably rely on AI slop than most people on this thread. I've found with the gaps with waiting on Claude Code output match the frequency I'm already checking my phone out of addiction. By no means the healthiest way to spend my time, but if I wanted to spin up a simple website or build out the framework for a project doom coding works for me!

Agreed 100% there are healthier uses of my time!

8mo agoHN ↗

In between sets!? I've found that if I do any activity in between sets (like watching Twitter) I'll just end up spending way too much and then make the exercise session super long. Also I can't focus and write a serious prompt or review serious results in just or 3 minutes. But maybe it works if the app is sonething you've recently worked on and you already have very clearly in your mind what you want, it just needs to be done.

8mo agoHN ↗

For incremental changes 1-2 sentences are usually enough. Also, since the program itself is a workout app with live reload, I can actually fix bugs while I’m using it.

As for too long of a wait I agree, it makes the sessions longer. Ideal window is after a heavy superset where waiting for 3-5 minutes is not a waste.

(Note that I’m not doing this for my real job, just for my personal project)

8mo agoHN ↗

Yeah, even if I'm on a plane or a train I probably wouldn't pull out my laptop.

Lack of space, vibrations etc. even though I can do a lot of work offline if the internet is spotty. It's just not enjoyable.

I prefer to read or chill out.

I kind of envy people who are like oh yeah I coded the feature on the flight... I can't really get in the zone in that environment.

Saying that, I assumed this post was a joke. ssh to a work machine or a personal machine through a VPN is not new, even if you happen to run claude code in that terminal.

I'm interested in these "micro exercises".

8mo agoHN ↗

Micro exercises: It's nothing fancy. While walking in the park, watching the kids play, waiting in a queue or in the train or something, when you have a minute to spare, you can do wall push ups, isometrics, leg raises, step jacks, squats, row pull with your jacket against a pole, etc. Exercises that don't require equipment. If you get an exercise band then you can carry it with you (very light and compact) and then there will be more types of exercises you can do. This will raise some looks, but they tend not to be negative, some people even praise me for staying active in unusual contexts.

Another thing I can recommend is Chinese style radio calisthenics (guang bo ti cao, look it up on Youtube, all Chinese people learn it in primary school and do them daily at school). Full body cardio like and stretching exercises that you can do while staying in one place (you just need space around you). Takes 5-10m, better warming up than just walking and swinging arms and covers a lot of basic things. The entire approach seems virtually unknown in the west.

8mo agoHN ↗

I think the problem you are having is that you are actually thinking clearly and rationally and are not suffering from this incessant brain rot that is the new normal.

8mo agoHN ↗

I do the same but my unifi network gives me a vpn out of the box.

8mo agoHN ↗

If you're on Android and can download QPython, it works just fine and has for years. This seems way overcomplicated, it depends on a remote computer that's on 24/7? Ick.

8mo agoHN ↗

Sadly I'm an iPhone kid - and yeah the 24/7 computer running is not ideal. It's been nice building on the server that I'm using to host the app, but then again I could just run the Dockerfiles via QPython and push the code via git?

8mo agoHN ↗

Also, if your Android phone is a Pixel, you can run the recently added Terminal app, which runs a plain vanilla Debian distribution within a VM. So you then have a pocketable Linux machine to develop code on. Not only does Python run on it, you can install the entire Anaconda Python suite.

8mo agoHN ↗

Wow, that’s cool! I wonder whether one day Apple is going to allow something like this with headless “macOS” VM on iPadOS to make it a viable local development platform.

8mo agoHN ↗

I would venture a guess some time between: "The heat death of the universe" and "Never".

8mo agoHN ↗

Because, wonderful as Termux is, it has a very nonstandard filesystem layout, so installation scripts for something like Anaconda will not run without extensive modifications. And Termux has no access to /proc, /dev etc., so lots of utilities fail. Since Terminal provides a full Linux VM, all programs that will run on Linux just work as expected.

8mo agoHN ↗

Termux can access the full file system if you have root access, which is how I play around with it; however, running a VM is a safer and easier route, especially as smartphone manufacturers are making it tougher to root the device you own.

8mo agoHN ↗

I haven't noticed anything like that. Some more obscure tools have trouble with the file system but that happens in ordinary Linux too. Though I have no experience with Anaconda specifically so you likely know better whether it'll need adaptations to work under Termux.

I run htop just fine on my handhelds and I'm pretty sure it sources directly from /proc, /sys or something.

8mo agoHN ↗

On my unrooted Pixel, I get "Permission denied" errors if I ls /sys, /dev, /proc and / within Termux. And /usr and /var don't exist.

8mo agoHN ↗

I tried this a while back with. NET and Blazor. With split screen I was able to add some code and preview live in the browser and build and 'install' a simple pwa.

Presumably with an external monitor and the desktop mode it would be better.

Code from tiny llms such as Gemma are a waste of time but it "worked". It was neat to generate a working app completely offline.

The main problem was that the VM crashed on my pixel fairly frequently. Might be better by now.

8mo agoHN ↗

I don't think it's actually the VM crashing, it's the Android OS killing what it thinks is an idle app.

8mo agoHN ↗

Claude not needed to "code from anywhere you are" and certainly not from your phone. no LLM needed. no agents. Tailscale or any other VPN not needed

use a laptop. (trying to do it with only a phone-factor UI is madness.) have a mobile-friendly ISP if desired or needed. solved. been solved for decades

so much of the AI BS hyping is about inventing supposedly unsolved problems. like Google showing me ads to convince me to use Gemini to write a README. no thanks, kids, have been able to do that for many decades using only my brain, eyes, fingers and vi/vim

8mo agoHN ↗

How do I use a laptop while standing on a train each day? It sounds like a laptop is sufficient for you, but I suspect (based on myself and other responses in this thread) that a laptop is not always viable for many people; this tutorial appears targeted toward those people.

I’ve actually considered a neck/shoulder support for a laptop in the past but decided against it because it’d be cumbersome and make me a theft target.

As for AI, personally speaking I use AI coding tools to allow me to continue enjoying some hobby side projects with less free time available with a kid. It’s been a massive boost to my happiness in a generally low stakes area. I’m curious to see if I can get a similar unlock on my short and interrupted commute times as well, which is why I (personally) find this article interesting.

8mo agoHN ↗

dont try to code while standing on a train. one of many antpatterns a wise engineer should learn to avoid, as part of polishing our craft. also: dont juggle chainsaws, etc ;-)

8mo agoHN ↗

but also dont try coding on a laptop. use a proper desktop, or better yet, get time on a mainframe. the problem has been solved forever, juat do work from the workplace at a dedicated terminal, built for doing that work at.

8mo agoHN ↗

groan HN needs a mute/block feature so we can mute/block folks like you. toxic. get a life

8mo agoHN ↗

Not coding on a laptop is actually good advice?! My argument would be that you shouldn't be doing any work without plugging your laptop into a full size keyboard and mouse at least. And, ideally, at least one external display of some form (I recommend 2 or 3, but it depends on exact setup/total resolution/etc.). But it's your body, not mine.

Regarding terminals, how often does this requirement occur in practice? Assuming it does, you can probably use your laptop for it, in which case, see above.

8mo agoHN ↗

I wouldn’t want to code but I could easily be working on plans with Claude.

8mo agoHN ↗

You can't bring a laptop to the club! Truthfully I haven't tried so I will keep you posted.

8mo agoHN ↗

revived an ipad mini 2 (2013), rooted it and ssh-ed in and let claude handle the tailscale setup, terminal emulator selection, and prep work. perfect form factor and can test web apps via browser.

8mo agoHN ↗

so much of the AI BS hyping is about inventing supposedly unsolved problems. like Google showing me ads to convince me to use Gemini to write a README.

Okay, but how are you going to write your AGENTS.md file??

8mo agoHN ↗

Thank you! Did not know about this command before - good to know

8mo agoHN ↗

Pretty cool idea, I'm going to be trying this only using open source Cecli (with DeepSeek API) instead of Claude CLI because I don't have infinite $$$

8mo agoHN ↗

Thanks! And great idea! I'm still new to hacking - definitely need to check out more of the open source tools out there

8mo agoHN ↗

What You'll Need

A Computer running 24/7 with Internet Connection

A Smartphone

A Claude Pro subscription

Or.. just install Termux and do it the same way you do it anywhere else?

8mo agoHN ↗

Termux with a 10-keyless BT keyboard in bed was a comfy way to solve AOC problems considering it released at midnight in my timezone.

8mo agoHN ↗

This comment taught me about Termux. Good to know!

8mo agoHN ↗

And what's the recommendation for iOS? Because, as it turns out, the Termux app on the App Store is not the same as the one on the Play Store, just uses the same name.

8mo agoHN ↗

Shellfish is underrated. It has a very convenient tmux integration (auto-restore a specific tmux session per host to work around iOS suspending background apps), supports SSH tunneling via other configured hosts, and can be used as an SFTP file provider for other iOS apps. It’s also generally polished and supports the expected standard terminal features.

There’s a few settings I wished were possible, like using volume buttons as modifier keys in Emacs (I’ve heard about this in other apps), but mostly it works fine.

8mo agoHN ↗

Blink will end up giving you an experience similar to the stack in doom-coding (as Blink's local capabilities are very limited thanks to iOS rules) except you have to pay a subscription.

Termux on Android will let you do anything you can do on your standard Linux PC.

8mo agoHN ↗

Hmm, maybe I got grandfathered in or something because I paid some set price a few years ago and have not had a subscription for blink, and just use it the same way I would use Ghostty and then ssh into another machine. Use something else if it needs a sub. Some sibling comments had some recommendations.

8mo agoHN ↗

Hang on, is Claude running on your phone/tablet and installing large dev dependencies right there? Or which parts of this stack are you replacing with termux?

8mo agoHN ↗

Didn't vscode have a web browser version you could self host so where is the cursor version, anysphere?

8mo agoHN ↗

I just use ConnectBot to ssh to my house. It runs tmux and vim well, especially with a little pocket-size folding bluetooth keyboard to go with it.

8mo agoHN ↗

I genuinely did that a few times. Using an ssh client to fix a commit failing CI, for example. Even launching release builds remotely. Notably once when I was on vacation and half the Scala ecosystem was waiting for me.

8mo agoHN ↗

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".

I'm tired of lugging my laptop around. Let me work from the beach with my phone and ar glasses.

8mo agoHN ↗

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.

8mo agoHN ↗

sitting with your laptop in the park is too strange.

Why should that be strange?

8mo agoHN ↗

Just install Termux and you're good to go.

8mo agoHN ↗

I already doom code! I’ve always found coding a highly addictive activity and struggle to stop when I should. So for me it’s a hard no thanks :-)

8mo agoHN ↗

This is very relatable - hence keeping "doom" in the moniker. Stay strong my friend

8mo agoHN ↗

So this is the 4th+ article I've seen on using a VPN to vibe code on your phone. Would an email interface to Claude code work better?

- Email Claude to start the coding

- Claude emails you with any thing it needs acked on.

- you reply back to emails telling it what to do.

- maybe Claude can run your program and send back screen shots.

seems easier then getting a vpn working. What is the downside to using email?

8mo agoHN ↗

I see no downsides. Seems like an actually useful udea.

8mo agoHN ↗

This is genius! The tailscale vpn was stupid easy to setup (I'm a near novice and figured it out). An email interface with progress updates would be even better than doom coding.

8mo agoHN ↗

I’d love this, if only for improved diff reviews possible compared to a terminal window! Would also work better for intermittent connectivity.

8mo agoHN ↗

What is the downside to using email?

Make sure you authenticate somehow to prevent external abuse.

8mo agoHN ↗

or text messages? Could be more convenient to reply to a text

8mo agoHN ↗

Why not use a browser?

OpenCode has a webUI, you can simply host that on your machine at home and VPN to it.

https://opencode.ai/docs/server/ (sadly no screenshots, but its a pretty good GUI, looks like their desktop app)

8mo agoHN ↗

You need tmux to be able to resume the same session from anywhere, mosh-server to make ssh resilient to sketchy mobile connections, and blink shell https://blink.sh/ to have a high quality iOS shell with a mosh and ssh client built right in to resume at any time.

Far more resilient and performant than a web client.

8mo agoHN ↗

Well the beauty is the logic lives on the server. The client is just a client.

If it disconnects you just reload the page. It can work just fine in the background because it’s not running on your phone.

Just like you can refresh the ChatGPT website, but OpenCode lives on your pc at home, not OpenAI servers.

8mo agoHN ↗

yes but I've never seen a terminal interface embedded in a browser that is as good as a native terminal app interface, and blink shell has been well worth the upfront cost to me (way better than Termius, which was suggested in the writeup)

8mo agoHN ↗

Is it easy to move the text cursor around in the text input in blink shell?

8mo agoHN ↗

I usually pair Claude with tmux, so you can move the cursor around the Claude output and copy, scroll, etc. that buffer is definitely the way to go. And within the chat box, Claude respects known eMacs/GNU shortcuts for cursor movement, so I like that more than Copilot.

8mo agoHN ↗

It's not. When using Claude Code (or similiar)you get a lot of problems in every shell about flickering, not being able to copy, not being able to move text cursor and so on. It's bad UX

If using TMUX you can "ctrl + b [" to enter copy mode and then you can move cursor as you wish. I wrote about this stuff too on https://mjqs.blog/meta/

8mo agoHN ↗

tried tmux but realized claude/gemini/codex's --resume works great and have since started using a single chat for all small work projects

8mo agoHN ↗

Yes, but you can't leave it running and working on something and then resume from wherever that left off that way from wherever you are.

Or are you saying you can resume a conversation that is still open in another terminal? What happens to the old terminal if you accidentally type into it? Will it overwrite the conversation?

8mo agoHN ↗

and blink shell https://blink.sh/ to have a high quality iOS shell with a mosh and ssh client built right in to resume at any time

I really like Termius, have you tried it? I think I tested out Blink when I was trying various SSH/shell apps and chose Termius over it, but it’s been so long now that I completely forget why.

EDIT: does Blink give you a local shell as well like vs only SSH/mosh?

8mo agoHN ↗

Yes, Blink gives you a local shell with some tools (not extendable), including Vim. It is even possible to mount a remote repository (we call it a Bookmark), and edit locally.

Give it another chance if you want to, I’m always happy to help.

8mo agoHN ↗

Is Blink’s shell different from something like iSH which gives you a local shell inside an Alpine Linux VM? Is it some kind of native iOS shell or is it also a Linux VM of some kind?

8mo agoHN ↗

From that page:

The opencode serve command runs a headless HTTP server that exposes an OpenAPI endpoint…

Unless I missed it, there’s no mention of a web UI?

8mo agoHN ↗

`opencode web` runs the web ui. It's very good.

8mo agoHN ↗

The docs are very behind, there is indeed a full blown webui and with opencode serve you can access it

8mo agoHN ↗

I have read of people doing remote coding with clause but through having Claude create pull request. The user then looks through the requests, and either approves or sends it back with edits. Seems like a good way to interact with Claude code, especially once one sets up a test suite and those proposed pull requests have proven not to regress.

8mo agoHN ↗

This pretty much sounds like my dream vibe coding dashboard - basically a personal Github populated by AI agents I can assign tasks to. Does this exist yet? Or can something like gitea be setup to behave this way?

8mo agoHN ↗

In terms of issue tracking and agentic "developers", with a mobile focus -

You can connect Linear to Cursor's web agent, which makes Linear issues assignable to the agent directly and kicks off Cursor's take on remote coding agent. You can then guide it further via Cursor's web chat.

If Claude Code on iOS supported Linear MCP (as it does on desktop), you can run a similar issue handoff to agent to issue update workflow, albeit without direct issue assignment to the agent "user". Easy to use labels aka tags for agent assignment tracking, as well.

For my hobby projects, I've been using Linear + agentFlavorOfTheMonth quite happily this way. I imagine Github issues, Asana, whatever could be wired up in place of Linear.

8mo agoHN ↗

Gastown, by Steve Yeggs is that, via tmux. It's rather opinionated and still in development, but it's worth a look if that's what you're looking for.

8mo agoHN ↗

Steve Yegge is building awesome things in this space, but I've found them too heavy, started using bd when it was small, but now its trying to do too much IMO, so made a clone, tailored to my use case -> https://github.com/cloud-atlas-ai/ba

8mo agoHN ↗

durch - just starred this repo! Looking forward to testing it out as I learn how to build with multiple agents.

I'm just starting out with building with Claude - after a friend made this post he sent me a Steve Yegge interview (https://m.youtube.com/watch?v=zuJyJP517Uw). Absolutely loved it. I come from an electrical/nuclear engineering background - Yegge reminds me of the cool senior engineer who's young at heart and open to change.

8mo agoHN ↗

Yegge is an absolute legend, no doubt about that :D

8mo agoHN ↗

This is how I do mobile device coding. Android terminal w. git and gh installed and authenticated. Claude manages the feature branching and PR process; I review the PR in the GitHub mobile app.

8mo agoHN ↗

Same approach here. PR is the human review point, tests + CodeRabbit catch most issues -> https://github.com/cloud-atlas-ai/miranda.

The gap I wanted to fill: when Claude is genuinely uncertain ("JWT or sessions?" "Breaking change or not?"), it either guesses wrong or punts to the PR description where you can't easily respond.

Built a Telegram bot that intercepts Claude's AskUserQuestion calls via a hook, sends me an inline keyboard, injects my answer back into the session. Claude keeps working, PR still happens—but I can unblock it from my phone in 5 seconds instead of rejecting a PR based on a wrong guess.

Works in tandem with a bunch of other LLM enhancers I've built, they're linked in the README or that repo

8mo agoHN ↗

How about leveraging the git email workflow? hey - Claudio submitted a patchset

8mo agoHN ↗

ive tried slack before, but a challenge is how well you can get results returned back in a way where you can actually see what it did and give proper next steps

getting a PR back and being able to put comments on it is fine, but ive had middling success getting qcli at least to actually match the comments with the code that was commented on. i get the sense that there isnt any training with the comments inlined well on a diff:/

it doesnt have to be a vpn though, i was on an oauth webbrowser terminal, and things like coder[0] let you run vscode on the browser, including on your phone browser. there's also happy coder[1] which i tried using to connect between the new builtin android linux vm, and skip all the remote stuff entirely, but the phone would inevitably kill the terminal runbing claude, killing the whole thing. you can currently just run claude from your phone in that, which only has the problem that when the vm crashes, all you can do is wipe the partition.

[0] https://coder.com/ [1] https://happy.engineering/

8mo agoHN ↗

It's amazing to me this is called coding at all. Who knew all project managers and business analysts coming up with business requirements were actually just coding gods sent from the future.

8mo agoHN ↗

Email is funny - maybe as a backup. Prompting is chatting.

8mo agoHN ↗

Inspiring me to do this in Telegram

“Why not Telegram”

all the crypto bros are already there, and maybe some e-commerce

8mo agoHN ↗

seems easier then getting a vpn working

it could not possibly be easier to get Tailscale up and running on your mac or linux machine, install tmux and mosh on your mac or linux machine, connect to it with Blink Shell https://blink.sh/ on your iOS device that you've also installed tailscale to, and start vibe-coding from anywhere, on a performant, resilient, instantly resumable terminal connection.

seriously, it's a game-changer

8mo agoHN ↗

I’ve been doing some of this through a term on my phone, but it honestly sucks. Other interfaces (telegram, web ui, email) are gonna be much better experiences on your phone.

8mo agoHN ↗

interesting. email. Simple multiple sessions support to reply vs tabbing here there get threaded. clever

with vpn vps if want to interact? how would that work?

8mo agoHN ↗

Would an email interface to Claude code work better?

No.

What is the downside to using email?

Email is clunky and feedback is not immediate.

seems easier then getting a vpn working.

Tailscale is easy for a dev to get going and very reliable. The author uses the Termius SSH app with Mosh, so it keeps the same SSH session going across device sleeps and disconnects. Tmux is helpful, too.

I do exactly what the author is doing, except I use a $5 Linode VPS, instead of a Mac at home.

He doesn't seem to be credited on this page, but I believe Pieter Levels (@levelsio) actually popularized this scheme. The author documents a nearly identical scheme.

8mo agoHN ↗

While I don't use the AI part I have a very similar scheme and it is one of the reasons I encourage people to live in the terminal.

The idea is to create a modern "terminal"[0]

My main computer is a Macbook Air, which I carry around with me. It's purpose is for: internet, using Microsoft products when I'm forced to, Zoom/meetings, and SSH (or Mosh).

Most of my work is not done on this Macbook, instead I use it mostly as a terminal. I have a desktop that's sitting behind my TV so that it can be my TV and gaming system (yeah I know Monitor > TV. I'm a filthy casual and I don't care). I have a mouse connected to that computer and instead of using a keyboard I use ydotool (Wayland xdotool) with a shortcut on my iPhone or a script on my android phone or from my Macbook. I don't have to get up from the couch and I don't need a clunky wireless keyboard to clutter my livingroom.

Additionally I have a few pis and an old android phone with Tailscale installed on them. That's come in handy before as a machine's been disconnected and so I couldn't ssh from outside. Also makes it really easy to do a jump if you want to keep a machine off Tailscale or you don't have full control (like my 3D printer).

This setup is very natural feeling if you live in the terminal. I actually started doing this when I started doing HPC work. In a setting like that you're never sitting in front of the computer you're doing most of your work on so it kinda clicked "why was I restricting myself outside work?" Plus there's the side benefits of I always have access to my media, tools, and other stuff. You can do exactly the same thing with a phone but I like having a keyboard and the air is very lightweight and has a long battery life. Any netbook would have done the job tbh.

[0] There's a reason they're called "terminal emulators" rather than just "terminals".

8mo agoHN ↗

If you've got a Mac in the mix, you should be aware that it can use an Apple TV as a monitor, so you can have a wireless extended desktop to anything that takes HDMI.

8mo agoHN ↗

Are there any benefits besides a nice GUI? I'm fairly comfortable with my linux desktop as an interface. TBH the most frustrating part is the iPhone shortcut app I made which I strongly believe is less about me and more than Apple is actively trying to be annoying (I recently had an update that required a minor change because the dictionaries in Shortcuts is idiotic)

Also, I heard that you can install Tailscale on it[0], so that can act as a gateway which is nice.

[0] https://tailscale.com/kb/1280/appletv

8mo agoHN ↗

It's something to be aware of if you already have the mac. It's nice to be able to have people over and they can share what's on their laptop with everybody without everybody having to huddle around one machine.

8mo agoHN ↗

Things are trending this way. I call it the PC counter-revolution.

8mo agoHN ↗

Has the refresh rate on eink devices reached like 30-60fps?

It definitely looks cool and I might give it a try, but I do love my dark mode and color syntax. My understanding is that color on eink is pretty limited. It also isn't worth it to me if I'm going to be spending $500+ on a "monitor". But I'd definitely love if things moved in that direction.

Honestly if Apple wasn't so insistent on making the iPad not a general purpose computer I'd use that as my thin client.

8mo agoHN ↗

They are still not great for high refresh rate, but I have a boox note air4C that can do fast-enough for video. It gets some ghosting (although it should be minimal for typing as you are fully changing from white to $color, backspaces might be a problem though). You will need a full refresh when scrolling but that is fast enough.

8mo agoHN ↗

How do you type? I get the ydotool usage but do you have a shortcut for each key then on your phone?

8mo agoHN ↗

For my iPhone I made a dumb script using the Shortcuts app. It's a horrendous app that combines all the worst parts of a scripting language with all the worst parts of a visual language. But I'm not sure how else to do it besides learning swift (I'm not confident I made the right decision btw. It is that bad)

So I just press a button from my quick select and then it'll send my text followed by a carriage return (depending on which option I use).

On Android I did something very similar using termux but it only took 2 minutes to write and is much easier to understand and use

8mo agoHN ↗

Similar, except I use a 10 year old surface pro 3. But I have to have a mechanical keyboard, so it's not exactly portable, but I can work from anywhere

I have no interest in LLM, or vibe code. Even though I miss the capabilities of intellij, nvim can fill the roll in the terminal very nicely, except rust analyzer filling up storage fast,

I also have a spare mobile, which I use to wake the computer up. And I have a python script running on it, to shutdown the computer in case of power failure.

After initial hiccups it working pretty well, except cats turning off the router, well how many can use the excuse that I couldn't finish the work because cat controls your network. LoL

8mo agoHN ↗

... I encourage people to live in the terminal.

I've done this for decades. screen or tmux (although I still confuse the keybindings between the two).

When coding on the move (mostly when I had a long commute or was away from the office visit clients) I'd use the Linux console (Ctrl+Alt+F1-F6) rather than X.

Even in the office I had an old amber/green terminal that connected to my Linux desktop via a serial port.

Nowadays I have a 14" USB-C monitor (ASUS Zenscreen) that sits beneath my main monitors which runs a terminal full screen.

8mo agoHN ↗

It wouldn't shock me if multiple people came up with this idea independently. I've certainly experimented with it over the last couple years.

8mo agoHN ↗

I'm fairly sure that levelsio didn't popularize SSHing into a computer from your phone to run a program. We were all doing it before LLMs.

8mo agoHN ↗

I agree, I'm failing to see what's novel here... Running an ssh client from a phone has been a thing forever

8mo agoHN ↗

New ideas build on existing ideas. He said SSH into a computer to run Claude Code on that computer.

8mo agoHN ↗

Yeah, I've never read anything levelsio wrote and I sshed into my computer to run Claude Code five minutes after I installed Claude Code and had to leave the house for a bit.

It's not such a crazy idea.

8mo agoHN ↗

No, somebody famous had to influence you for it to exist. The real progenitors are always other people.

8mo agoHN ↗

The whole point to SSH into a computer is to run the programs on it.

8mo agoHN ↗

Yes. I and many others were already doing this obvious thing.

8mo agoHN ↗

By “this scheme” I meant combining these several technologies for vibe coding on an iPhone with Claude Code. It’s been a bit of a viral meme on X this week.

8mo agoHN ↗

I started doing this before it was viral - it's basically obvious and I'm sure many people simultaneously did it since it was so obvious and easy to do - I even have the same tech combination.

8mo agoHN ↗

I did this on my Nokia phone over GPRS in 2005, my program of choice was irssi. We did have a Markov chain bot though.

8mo agoHN ↗

Email is clunky and feedback is not immediate.

You're vibe coding on a smartphone into an external computer. You already abandoned "Immediate feedback" and "cohesion".

8mo agoHN ↗

People have all kinds of bad experiences with tech. The kids write off any thing they didn't invent or adopt as inadequate.

It usually comes from the bad experience or poor exposure.

Its hard to hate on them when it comes from a position of limited exposure.

8mo agoHN ↗

Yeah, any outright dismissal of a perfectly reasonable idea like this smells of market opportunity.

8mo agoHN ↗

Tmux is helpful, too.

Yes. tmux is essential. It's great to be able to monitor a session from desktop, or to pick up an existing conversation i'm having on the computer on my phone. In my shell, I have gemini flash wrapper that I use to manage my sessions so I can quickly connect to an existing one, or create a new one with natural language.

He doesn't seem to be credited on this page, but I believe Pieter Levels (@levelsio) actually popularized this scheme. The author documents a nearly identical scheme.

I've been doing this (tailscale + termius + tmux + ssh) for at least a year and a half. First with Aider in this exact setup, and now with Claude Code and Codex.

8mo agoHN ↗

I can no longer edit this comment but it wasn’t meant to criticize the author. This is a great post. They are sharing their experiences and more importantly, teaching others.

Sorry if anyone, especially the author, took it this way.

8mo agoHN ↗

So what about setting up a discord server for you and your LLM? Gets the notification benefit of E-mail but retains the immediate-resposne, no? That's how all my UptimeKuma notifs are setup atleast...

8mo agoHN ↗

I've been using Claude Code in their iOS app (on a Pro account). I just point it at my GitHub repo, and tell it to work on one of the issues I created. It required very little setup beyond what I did for Claude Code CLI.

8mo agoHN ↗

i've seen that work well on existing codebases, but bootstrapping a codebase that way is like pulling teeth in my past experiences.

so it really sort of falls back to what you're doing with the llm. code maintenance isn't novel development, which isn't polishing.

8mo agoHN ↗

Email might work, however if you're a Telegram user you could write a bot that runs on your home system that runs the cli commands on your behalf and then sends the output as a response to you. No need to open up any ports on your router.

8mo agoHN ↗

I didn’t know until I read this comment, but this is exactly what I want. A telegram bot with Claude on the other side and GitHub app to check out the code

8mo agoHN ↗

I have custom scripts I use at home to keep track of various personal data, assisted by an LLM. The idea of using Telegram as a way to have a global, quick, and personal interface from my phone or tablet, is perfect and easy to set up.

Claude is making it easier to have bespoke data and dashboards for anything. We're going to make a lot of them, for all reasons. I've also made apps with Django interfaces, but quick, global interfaces are going to become in demand.

8mo agoHN ↗

I concur, but I also think that Home Assistant could be used as a rock bed to build many of those dashboards easily. They just need to revert the "go all in on UI first configuration" and keep YAML declarations as first-class citizen to let LLMs easily compose dashboards based on user's desires.

8mo agoHN ↗

I've replied with this in another comment, but this seems more pertinent ;)

Thats exactly the approach I took with https://github.com/cloud-atlas-ai/miranda, Telegram bot, PR is the human review point, tests + CodeRabbit catch most issues.

Bot intercepts Claude's AskUserQuestion calls via a hook, sends me an inline keyboard, injects my answer back into the session. Claude keeps working, PR still happens—but I can unblock it from my phone in 5 seconds instead of rejecting a PR based on a wrong guess.

8mo agoHN ↗

That looks really cool I'll have to check it out.

8mo agoHN ↗

I've been using Telegram bot to talk to a Claude SDK agent who talks to my Claudes via tmux commands (all running on a DigitalOcean VPS)

8mo agoHN ↗

Unless you set up pgp in your email client...

8mo agoHN ↗

You're vibe coding. Clearly what you're working on isn't of enough value to secure anyway.

8mo agoHN ↗

I code from my phone via GitHub and the Claude actions plugin.

8mo agoHN ↗

I'd rather have an DM interface and each task has its own little icon or face. You still have to set up one of the text servers and also do VPN but if you're already vibe coding that stuff why not make it more pleasant than TUI on your phone?

8mo agoHN ↗

What is the downside to using email?

If true to the post, it lacks "real time". Doom scrolling by nature is while chat is async. Refreshing Gmail constantly is not fun.

8mo agoHN ↗

You don't need a VPN to vibe code on your phone. I've been happily doing thumb-driven development for the last 4 months now using GitHub Copilot on github.com from my phone. It even has real-time chat with copilot as it works. Having your PRs deploy to an environment allows you to check it. I also have playwright tests that record screenshots and traces that get uploaded as artifacts I can check too.

8mo agoHN ↗

If setting up a VPN is that difficult for you you may have bigger problems my friend. (I joke). But really I am surprised that a VPN is the part you take issue with.

8mo agoHN ↗

So this is the 4th+ article I've seen on using a VPN to vibe code on your phone.

and all of them mentions Tailscale. I would not be surprised if we hear in a few days it got next big fund and all of this is just a preparation for it

8mo agoHN ↗

Tailscale has been a HM darling for a long time, this isn’t very surprising!

8mo agoHN ↗

Right. For a simple setup I think using plain boring Wireguard is the better option. Boring is good.

8mo agoHN ↗

I did this on my own without reading any of these articles - I already had a terminal program on my Android phone and was already using Tailscale for shared projects in Ghidra so... Maybe it's just a path of least resistance.

8mo agoHN ↗

Would an email interface to Claude code work better?

This might be the most "when your only tool is a hammer all your problems look like nails" suggestion I've ever read.

Email driven automation isn't a terrible solution to everything - it works very well for support tickets, for example - but it's really lacking in the immediacy required from a serious software development environment.

I'll go further: I think coding on my phone is a fun, neat, idea, and an interesting curiosity, but I don't actually want to do it. There are few situations where I'd feel comfortable getting my phone out to code where I don't also have my laptop with me, and that's going to provide a way better software development experience, so I'm always going to use that for anything serious.

8mo agoHN ↗

My thoughts went into a different direction: "Maybe I should buy a small tablet so that I can read code properly without carrying a full laptop?"

(Sure, there might be small laptops of similar dimensions ... But as the name "laptop" suggests these are made for a different UX... and they require more effort to turn on/off)

8mo agoHN ↗

Claude Code does a very decent UI, somehow the text mode is much more attractive. As if there is once in a lifetime opportunity to make the console great again.

8mo agoHN ↗

So basically back to the chat-interface. You could also replace e-mail with WhatsApp, Telegram, Slack, Mattermost or whichever you prefer, it would be all the same.

8mo agoHN ↗

No syntax highlighting, I do like to review snippets of code. Also the interactive questions / answers during planning would be a pain over email. And what about text wrapping? Headache.

Edit: also setting up an email interface API to Claude Code seems like a lot more work than just setting up a VPN.

8mo agoHN ↗

Claude Code recommended a Telegram bot over email for this very workflow. I've configured my basement RPi to use my "spare tokens" during off hours. At 5PM it messages me to ask if I want the agent to work this evening. If there's no task in the queue I can add one then using the bot. There's also a set of commands to check on status etc. I'm working on the next step to make it a more automated and if there's no specific task, it will create it's own.

8mo agoHN ↗

it looks like some kind marketing push or 'growth hack', just to get some viral thing around which justify why do you extra reason to pay for Claude or Tailscale subscription.

I personally not even convinced that Claude Code any better on average than something like Aider+Gemini 3 or other good model. May be in some specific cases it actually better but in those Aider+'Antropic Model via API' most likely will work too.

8mo agoHN ↗

I am looking for some open source terminal for iphone .I have code server running which i can just use terminal from vs code on safari

8mo agoHN ↗

Why would I need claude code for remote programming, if I could just use ssh and tmux?

8mo agoHN ↗

"Even code at the club!" haha if you're coding at the club, just go home! but also, I really wish Sony still made their micro Vaio laptops (Sony Vaio P, for instance).

8mo agoHN ↗

That phone was taken 5 minutes before departure lol - a micro laptop sounds sweet!

8mo agoHN ↗

"Even code at the club!" ... Great idea for my next rap song! LOL

8mo agoHN ↗

Historically I had thought there was a pendulum swing between using local computing resources vs. having a dumb terminal to access something remotely.

But now instead of swinging back to local resources, apparently we're proposing to add a second layer of remote access (phone -> computer -> Claude servers).

8mo agoHN ↗

Hey, come on, it could be better: you could have hundreds of employees venting directly to chat logs held by Microsoft detailing all your internal politics, planning, customer acquisition strategies, code, integrations desires, excel sheets, emails, and projects.

Nothing could possibly go wrong, those guys are always 100% trustworthy and reliable, contracts and NDAs with them are ironclad and easily enforceable… … o_o

8mo agoHN ↗

In the last 5 years I pretty much fully migrated to my laptop being a terminal for other machines. I more use it like a local machine in HPC: web browsing, word processing, scripting. Anything serious is done remotely. But I also live in the terminal and so realistically what's the difference? 99% of the time the result is that I get to use a "big" computer without having to carry it around.

FWIW, I'm not a big fan of AI coding. I use AI (including LLMs) and I am an AI researcher, but the vibe coding just hasn't clicked despite constant efforts. I guess it can make more sense to do it if you're programming from your phone because while normally typing isn't the bottleneck it definitely is on the phone (or at least far less comfortable)

8mo agoHN ↗

My desktop is 11 years old, but I still feel like it does so much that I wouldn't want any cloud services except for AI. (And there's no way this thing would handle a useful local model, but I'm also really not very enthused about the kind of data sharing involved in remote AI use.)

8mo agoHN ↗

I mean the power of the work machine really depends on what your needs are. Definitely should adapt to whatever your needs are.

  > And there's no way this thing would handle a useful local model

So if you have a setup like mine then it is fairly trivial to incorporate that (or anything else). Either way you'll need a machine that can do the local AI though. Either that is on your "work machine" or you run the AI on a separate machine. You could even rent a machine and as long as you add it to your Tailscale network then you're connected.

I strongly suggest having a workhorse machine and then let other devices be your terminal into it. Your terminals can be very cheap (or an old machine) or as suggested, your phone.

8mo agoHN ↗

I appreciate the thought, but advice like this is completely irrelevant to my current circumstances (and personal principles) and would be very expensive (respectively, emotionally unpleasant) to implement.

8mo agoHN ↗

Just trying to help given that you responded. I'm happy to help you find solutions but the constraints might be too much, unfortunately. If you don't have a machine that can run local AI and don't have the funds to buy one then frankly it just isn't in the cards. But hey, if you don't want to use AI or at least willing to use non-local then the setup probably doesn't require you to spend a dime.

8mo agoHN ↗

(I wasn't looking for a solution, just giving my perspective.)

8mo agoHN ↗

Same setup as mine, I have an OpenVPN server running in my router, and my main PC has wake-on-lan and a KVM as a backup to turn it on and off.

I have an old used Dell Latitude that I use as a pseudo thin client. I ssh into my PC, and everything just works.

I really like this setup because I only have one environment, so everything is there, and I don't have to install anything in the laptop

8mo agoHN ↗

  > I really like this setup because I only have one environment, so everything is there, and I don't have to install anything in the laptop

Yeah that's one of my favorite parts. Same about living in the terminal. I can be effective anywhere nearly instantly. I carry everything around in my dotfiles and keep it small (keep the .git folder small and don't add anything except text files)[0].

On that note, one thing I highly recommend to people is to add some visual clues to tell you which machine you're on. I use starship and have a few indicators but I also have some PS1 exports that I've used in the past or use in new tmp instances (I HIGHLY recommend also doing this for when you're using the root account). It can get confusing when you have different tabs on different machines and it is easy to mistake which one you're on.

[0] I also recommend keeping notes there if you like writing in markdown. Files are so tiny that it's worth having them. It's benefited me more times than I can count.

8mo agoHN ↗

If you don't mind, I'd like to hear more about your setup. I have a bunch of bash scripts and python programs I've used to make working in the terminal easier (and more fun). Are you saving your dotfiles are a git project and then just syncing and pulling them down from there? I'm not an expert, just a tinkerer, but I like tinkering in the terminal. :)

Thanks in advance!

8mo agoHN ↗

Not the parent but a project (glorified Bash script) called vcsh[1] has served me well over the years for managing multiple Git repositories containing my dotfiles (separation of concerns).

Lately I have migrated some of that to Guix Home because the other half of the problem is having all the dependent programs necessary for the dotfiles installed automatically at the appropriate versions.

The latter one especially falls into the realm of tinkering. :)

[1]: https://github.com/RichiH/vcsh [2]: https://systemcrafters.net/craft-your-system-with-guix/guix-...

8mo agoHN ↗

Yeah my dotfiles, notes, and scripts are in a single repo. I think the most important thing to do is organize. I just match the system. So I put everything that a rc file in ~/ in one directory and everything in ~/.config in another. Then if you have your repo downloaded all you need is to run 2 find commands like this

  find "${DOTFILE_DIR%/}/configs/" \
        -maxdepth 1 \
        ! -name "*.md" \
        -exec bash -c 'ln -Fis "${0}" "${CONFIG_DIR%/}/${0##*/}"' {} \;

It baffles me that people are so unorganized in their dotfiles. A little goes a long way to making your life easier. But then again people suck at bash so they're probably not thinking of using find this way. You could also use xargs to parallelize if you want but there'd be no practical speed difference for me

Another key component is to break out files. For example I have the directory ~/.dotfiles/rc_files/zsh. My zshrc file sources different files from that location. So I have a Linux file and OSX file there for anything that is specifically system dependent. If you want different configs on different machines you can check the hostname and use the same pattern!

Speaking of which, use functions! At first this is going to sound crazy but it's worth the effort and let's be honest, the effort is very low (though the initial rebase might not be depending on how messy you are)

  function _exists() {
      command -v "$1" &> /dev/null
  }

  alias_ls() {
    alias_lsd() {
        alias ls='lsd'
        alias la='lsd -A' # A drops . and ..
        alias ll='lsd -l' # h is automatic
    }
    alias_base_ls() {
        alias ls='ls -v --color=auto -h' # numerical sort, color, human readable
        alias la='ls -A' # ignore . and ..
        alias ll='ls -lh'
    }
    if ( _exists lsd );
    then
        alias_lsd
    else
        alias_base_ls
    fi
  }
  main() {
    alias_ls || echo -e "\033[1;31mls aliasing fucked up!\033[0m"
  }
  main

Yeah, it is a bit more cumbersome but it's really not that bad and

  1) debugging gets so much easier
  2) you know where everything is and what everything does. 
  3) trying new aliases, command tools, scripts, etc also becomes a lot easier. 

Following Unix philosophy has more advantages than disadvantages. I also strongly suggest adding comments because you'll forget why you did something. I'll often link to posts for this and for giving credit.

Since we're speaking of bash, bookmark this website: https://mywiki.wooledge.org/BashPitfalls

Fwiw, my main language is Python but for pretty much everything in the terminal I write in bash. You can often make oneliners that would traditionally be a lot of lines in Python. Not to mention it's usually faster. It's a good way to help you learn bash too! ^__^

8mo agoHN ↗

Thanks for the detailed reply, examples, and links! Yeah, I definitely rely heavily on bash script functions, but had never thought about using git to share or sync my scripts and little programs. Thanks again, I really appreciate it!

8mo agoHN ↗

Maybe in the future we'll all have a "hub" in our homes that contains our data, but we'll shell out to the local datacenter for AI compute, while our actual interface will be a VR headset or tablet located with us, anywhere in the world.

8mo agoHN ↗

A Claude Pro subscription

"Doom Slopping" might be more fitting.

8mo agoHN ↗

Number 1 on the front page of Hacker News for explaining how to connect to a remote machine via ssh.

8mo agoHN ↗

I too am dumfounded by this. Is it an off day? Have all the people that actually know how to do things with computers gone somewhere else? What is going on here?

8mo agoHN ↗

It's all AI hype bro sycophants for the most part now. Oh, well.

8mo agoHN ↗

Yeah I feel like I'm missing something here. I'm not sure if people being so dependent on these LLMs generating code is that widespread at this point or if this is some kind of publicity stunt.

8mo agoHN ↗

this is literally my setup and it is a game-changer:

tailscale, tmux, codex/claude code, mosh, blink shell (iOS) https://blink.sh/

8mo agoHN ↗

Curious if you are directly running mosh on macOS. Last I checked, it was broken on macOS Tahoe, so I have been relying on tmux for surviving flaky ssh connections.

8mo agoHN ↗

i use both tmux and mosh-server

i install them via nix-darwin (I've abandoned homebrew)

i am on Tahoe latest beta

8mo agoHN ↗

So, we've spent ages, blood, and tears building better UIs than text, and now with AI everyone is suddenly expected to type instructions on the phone? Yes, I realize this is hard to avoid for coding in particular, but generally I'm tired of typing text on my phone. And no, I don't want to talk to it either.

8mo agoHN ↗

How much information can you encode in your squint?

8mo agoHN ↗

I use a bespoke hacker software keyboard (ctrl/meta/custom keys for GNU screen and emacs) and also bespoke SSH client (fork of the original irssiconnectbot) for years.

My phone is the original Pixel Fold. You would think I use it unfolded but the passport form factor lends itself to be almost as productive folded that I use it that way most of the time. Unfolded it's just a bit better experience (bigger keys / more display real estate/ more characters per line/ etc).

With that said I'm looking forward to the Click Communicator: https://clicks.tech/communicator

I've also been meaning to write about my setup and open sourcing my tools.

Oh. Writing clojure helps due to the terseness of the language. Not sure it would be a pleasant experience writing something like Java with the 80 character line limit I try to impose on myself

8mo agoHN ↗

I am a huge fan of driving agents from my phone, though this is one of the places where I don’t think terminal UIs work. Agents need a web UI for phones.

8mo agoHN ↗

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.

If anything, I want to do more of that: get away from the device to let my mind wander. "Doom" coding sounds apt.

8mo agoHN ↗

Vibe coding is such a bad word. It should be called prompting. Thats all it really is. Its like calling a point and click UI programming

8mo agoHN ↗

I feel it depends whether you inspect and edit the code as part of the workflow, or just test what the AI produced and give feedback without participating in the coding yourself.

8mo agoHN ↗

Most of the slop i witness is the latter. This is evident in huge multi 10K pull requests. The code is just an artifact, while the prompting is the "new" coding.

8mo agoHN ↗

I run Claude Code on my phone itself via Termux.

8mo agoHN ↗

claude.ai + vercel and you can do it all without anything but your phone

their web interface lets you use Claude code and push changes to a GitHub repository

vercel can auto build from a GitHub repo

even less setup and infrastructure needed

8mo agoHN ↗

If you have GitHub copilot you can create github issues and assign them to copilot. All you need is a browser.

8mo agoHN ↗

İ've been using Termux (and Vim) to code on my phone for years, way easier than this setup.

8mo agoHN ↗

I was coding a lot many years ago with a Nokia N900.

The loss of the physical keyboard ruined everything for me. I really need the sense of touch.

8mo agoHN ↗

Similarly I used to write Python on my Motorola Droid with the slide-out keyboard. But my touchscreen typing style these days relies heavily on auto-correct and trying to enter code is a real exercise in frustration.

8mo agoHN ↗

If you don’t write a single line of code that’s not coding.

Otherwise my customers are coders to. they to the same. The difference is the recipient of the order

8mo agoHN ↗

Btw this is basically Replit's entire product (replit.com). Costs some money but the UX is pretty good

8mo agoHN ↗

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.

8mo agoHN ↗

I agree- I think there is a good opportunity for a more slow-paced, thoughtful UX on mobile.

8mo agoHN ↗

I was expecting this to be about using Termux or similar. Why are LLMs involved here?

8mo agoHN ↗

I'm using the Android terminal and Claude Code to vibecode on the go. Or rather, as a fairly boring father of two, when I'm tied up in the necessary chores of family life - cooking and cleaning. Nothing as complicated as this - just Claude Code and a fairly standard Linux dev term, but it's remarkable.

Over the recent break, across four or five sessions, I wrote a set of prompts around ~500 words in total.

The result was Claude scanning my network for active ports using nmap, fuzzing those ports with cURL, documenting its findings, self-directing web searches for API/SDK docs for my Hue bridge and ancient Samsung TV, then building a set of scripts to control my lighting system and a fully functional HTML+JS remote for my TV.

The most entertaining part was Claude prompting _me_ to pop into the living room and press the button on the Hue bridge so it could fetch an API key.

The most valuable part? The understanding I gained secondary to generative act. I now understand the button on a Hue bridge literally just tells the device to issue a new API key at the next request. I understand how Entertainment mode works, and why. I understand how Samsung SmartThings is mediated via websockets - and just how insecure decade old Samsung TVs are.

Around 500 words to gain all this? I hate to buy into the hype, but it feels inflectional.

8mo agoHN ↗

I read the Readme. So this is all just stuff you can do with Claude's cli interface? It edits files and runs utilities? And it does this with few enough errors that you can be productive by just chatting with it over ssh? Is Claude the only one that can do this?

8mo agoHN ↗

Probably Claude Code and Codex are the currently best ones, Claude Code a bit faster, Codex a lot more precise and "engineering" focused.

As long as you figure out how to verify that the built thing actually does what it's supposed to, ideally with automated tests, it's almost fire-and-forget if you're good at explaining what you want and need.

8mo agoHN ↗

Possibly Codex, but I've only used Claude Code so far.

Worth pointing out I'm not SSHing to a different device. Claude Code installed and running directly in Android terminal on my phone.

I've built ASP.NET Core APIs on-device this way. Install dotnet in the terminal and Claude can write code, build, run unit tests, and even run the API on localhost. Then use `git` and `gh` to commit, push and raise a PR.

8mo agoHN ↗

How did you make sure Claude wasn't doing anything unintended while allowing it to run scripts it wrote on your network?

8mo agoHN ↗

Run it inside a VM, make snapshots of the VM if needed (or use vagrant/ansible to rebuild), commit regularly, ...

8mo agoHN ↗

That seems incompatible with the parallel tasks of cleaning and cooking (at least for me, especially with kids around).

8mo agoHN ↗

The VM is setup once, before you get to be "on the go": that's your development environment, you need one anyway

8mo agoHN ↗

The VM still needs access to the network for the use cases they described though.

8mo agoHN ↗

I still manually approve tool use requests at the start of a run. As it gets deeper in I might allow it to run safer commands without that oversight (e.g. writing to local text files), but potentially destructive execution still requires approval.

As for the local env, I'm treating the Android terminal as a sandbox. Anything gets trashed I just reset and reinstall my toolchain.

I won't pretend I'd use this workflow for anything high-stakes. But for simple things like "I wonder how my Hue lights actually work?", its viable.

8mo agoHN ↗

This can be done not just with Claude but also with codex and gemeni cli. Well technically anything that has a cli interface.

I run both gemeni (fee) and codex (paid), with tmux thrown in to switch between phone and laptop. Laptop runs vscode with ssh to my server but I could also use the web version of vscode.

8mo agoHN ↗

I’ve thought about this many times, maybe with a custom telegram bot!

8mo agoHN ↗

I have similar setup, one thing to add is map action button to a shortcut for dictate to clipboard since you can’t dictate directly into termius.

8mo agoHN ↗

Could you please share more? I can't make dictation work.

8mo agoHN ↗

I use Terminus with Zellij and keep about 8 sessions going with a combination of Claude and Codex, and once in a while, Gemini. It's great when you're sitting in a docotor's office lobby bored out of your skull and when you get back to your desk you just join the session and it's all right there.

8mo agoHN ↗

I've seen this concept a few times recently and am interested.

However, what's the benefit over just using the "Claude Code for Web" feature built into the Claude Code mobile app?

It 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.

Would be great to understand what the differences / advantages of OP approach are.

8mo agoHN ↗

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.

8mo agoHN ↗

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).

8mo agoHN ↗

The Claude code tui is so nice. The web and iOS apps neuter it weirdly.

8mo agoHN ↗

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.

No VPN needed.

8mo agoHN ↗

I'm looking at Opencode and it might be better because it allows you to abort a task. VPN needed.

8mo agoHN ↗

My flow is GitHub issues+ GitHub Copilot+ Web Deployments from GitHub actions.

I can just ask GitHub to fix something from the mobile app, and then set it to build on PR merge. It works most of the time, but you'd have to be absolutely wacky to do it in production or with any code you actually care about

8mo agoHN ↗

I love this! This concept on steroids is one of the main reasons I made https://github.com/knowsuchagency/vibora after trying both happy.engineering and Vibe Kanban for remote coding. There's the claude mobile app, too, but I want to run Claude on my own hardware in a terminal

8mo agoHN ↗

My setup is very similar.

After you log in you can unlock keychain by running this command

‘security unlock-keychain’

8mo agoHN ↗

I've been working on something similar: https://github.com/shepherdjerred/monorepo/tree/main/package...

Essentially you run a server on some machine. Sessions are created in Docker containers, K8s pods, or via Zellij (an app similar to tmux).

You can:

- Directly attach to sessions via Docker attach (built-in via a TUI). You get a normal Claude Code experience, but multiplexed. The switcher/UI shows you the status of Claude and the PR (pushed, merge conflicts, CI status, review status, etc.)

- Manage sessions via a web UI. Connect to Claude Code directly via your browser. You have access to the usual Claude Code terminal or a native chat view.

- Manage sessions via an app. You have access to a native chat view.

It achieves isolation via Git worktrees + a proxy so that containers have access to zero credentials (there aren't even any Claude code creds in the container), which allows you to more safely use bypass all permissions mode.

This works better for me that Claude Code on Web because I have control over the environment Claude is running in. I can give it any Docker image I want, I can have it connect to my local network, etc.

It's still a WIP (the core bits are there, but it's not polished yet), but I'm hoping it provides a friendlier UX with a similar goal for what the OP has in mind.

8mo agoHN ↗

Being able to “code” from your phone really feels like a huge change; it never took before because coding from your phone was miserable, but if you’re just coding by having a conversation then it might even be better to do it from your phone. I don’t know what that leads to, but it’s let me fix bugs from bed and build an MVP while moving, so I can’t complain.

For anyone looking for a more integrated and smaller approach, I built an open source app builder + runtime: https://github.com/tinykit-studio/tinykit

Basically gives you a Lovable-like app builder with built-in services (database/files/auth/email/payments/etc), content and design fields, and a code editor. Code is a single Svelte 5 file, and you can build/host unlimited apps on one server. And the server is just node + PocketBase, so runs easy on a $2 VPS. And LLM is BYOKey.

8mo agoHN ↗

Typing on the phone is terrible. Could work with good speech to text though

8mo agoHN ↗

Back 15-20 years ago we had many phones with keyboards. They had a purpose but Apple's profits made everyone envious and they started to copy what the leader was doing even thought for some users a keyboard make much more sense.

What make sense for all users would be a swap-able battery. Water-tightness is no longer and excuse with new phones likes foldables that aren't. Fun fact, Apple dumped the swap-able battery before the iPhone was waterproof.

8mo agoHN ↗

i switched to using neovim a year ago and oddly enough its actually a lot easier to write code in termux compared to any of the other android IDE type apps. they all have drop down menus or sidebars that are quite awkward to use, especially when the keyboard is already taking up half the screen, but with neovim (or vim) youre using the keyboard to do most things anyway, so the keyboard can just stay open all of the time and you never need to move your hand up to the actual app part. selecting text is way easier than android's implementation as well

8mo agoHN ↗

This looks neat. How do you handle code verification in this workflow, especially if you want to be confident about what actually ran?

8mo agoHN ↗

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.

8mo agoHN ↗

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.

8mo agoHN ↗

Claude iOS is way worse. You don’t get the full tui.

8mo agoHN ↗

I might just be old fashioned but in a party with a couple of drinks in me I don't trust my ability to even vibe code well.

8mo agoHN ↗

Just keep your eyes on the pretty CI/CD lights.

8mo agoHN ↗

I made something very similar for myself and now have decided to open it up to others if you want to help me beta test.. free for all and it sets you up with your own hetzner vps and you even share my claude code max account: clodhost.com

8mo agoHN ↗

Guys hear me out. If you ssh into your raspberry pi or any PC you could open console and run nano text.md file. Then you can manage your todo list from any device remotely. Stop doom scrolling and start disrupting todo subscription services. /s

8mo agoHN ↗

ollama runs locally in termux preferably on proot-distro (with less "coding power")

8mo agoHN ↗

This is awesome! But I don't think you need to say never to all those display settings. You just need to go to Battery -> Options, and "Prevent automatic sleeping on power adapter when the display is off", and wake for network access when on power adapter.

8mo agoHN ↗

Yeah I just built www.makerkit.io for the exact same thing

8mo agoHN ↗

Tailscale is a lot of permanent runtime overhead/latency just to avoid setting up dynamic DNS and changing a few lines in the sshd_config.

8mo agoHN ↗

Do you have recommended reading? I haven't been confident enough that I wouldn't overlook serious security issues opening SSH on my own machines.

8mo agoHN ↗

"2. Make sure your computer is ON and UNLOCKED When disconnecting/reconnecting power, make sure you unlock the computer. I've ran into this issue one too many times."

- this is the biggest problem that needs to be solved

- i dont want to keep my computer running 24x7 wasting power for stuff like this

- 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?

8mo agoHN ↗

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.

8mo agoHN ↗

I use Prompt, Ever Terminal, Whisper, EC2 and Claude Code.

I 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).

Also have a Claude driven CI workflow in GitHub to help keep everything on track.

Having full access to the Claude Code TUI is so much better than the web or iOS interface, plus everything runs on your own setup.

And agree it has replaced doom scrolling / useless new reading.

8mo agoHN ↗

I’m wary of enabling ssh/remote login. It seems like it could be an attack vector.

8mo agoHN ↗

Why do you ever want to code while you are running? I run to getaway from daily grind to smell the fresh air.

8mo agoHN ↗

Cursor--run in cloud seems to work just fine for this. I setup my project and then github to publish web or mobile app.... i believe claude can also take instructions from github...or am i missing something.

8mo agoHN ↗

Tailscale is quite handy in remote agent coding, Sometimes I use tailscale and RustDesk on my phone to check Claude code, I also built an app called NovaAccess which bake tailscale into the app which does not confict of VPN I used.

8mo agoHN ↗

This is cute.

My 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.

8mo agoHN ↗

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.

Instead 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.

8mo agoHN ↗

Whats the cycle time here? This work flow makes sense to me.

8mo agoHN ↗

It’s largely asynchronous for me. I'll trigger the generation and come back to the PR whenever I'm free.

I'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.

8mo agoHN ↗

A random thought has started to occur, maybe given how early we are in LLM tech world, isn’t it strange a lot of AI tech is being built on top of proprietary tech? In this case, it’s Claude Code

And honestly, all this free marketing has me convinced to pay for it

8mo agoHN ↗

Why not Claude Code on web/cloud linked to your GH repo?

8mo agoHN ↗

is termius free, I was wondering if there is a free open source ios terminal

8mo agoHN ↗

I have been doing this with toad and opencode and it is great for those unprompted ideas that pop up while in the big blue room, but not really useful for large projects.

8mo agoHN ↗

Yeah but I wonder if there's a structure that can be used to make it useful for larger side projects.

8mo agoHN ↗

That’s where VS Code has helped me the most, it provides a lot more model guidance than people realize.

8mo agoHN ↗

probably because you just install it, then you log in and youre done. tailscale takes care of the rest. going through any more effort just so you can write some slop code is probably not worth it

8mo agoHN ↗

If you don't want to run your machine 24/7 (whether for electrical consumption, environmental, noise, etc reasons), I wrote an ssh proxy [1] that will send WOL packets to a target machine and hold your connection until its alive.

I then configured debian-autoshutdown [2] to turn the machine off if there's no traffic on ssh after 15 minutes.

This way I just ssh into my machine (whether via antigravity on my laptop or termius on my phone) and within 30 or so seconds its awake, no physical button presses needed. I documented the whole flow in more detail on my blog [3].

I'm now working on an improvement called machine on proxy (or mop) that will allow me to start Proxmox VMs instead of physical machines, so I can let gemini-cli run wild and if it decides to wipe the entire hard drive I can restore from a snapshot.

[1] https://github.com/simonamdev/ssh-wol-proxy

[2] https://github.com/mnul/debian-autoshutdown

[3] https://www.simonam.dev/ssh-wol-proxy/

8mo agoHN ↗

I do the same. I can SSH into my router at home (which is on 24/7), then issue a WOL request to my dev machine to turn it on.

You don't even have to fully shut down you dev machine, you can allow it to go into stand-by. For that it needs to be wired by cable to LAN, and configured to leave the NIC powered on on stand-by. You can then wake up the device remotely via a WOL magic packet. Maybe this is possible with WLAN too, but I have never tried.

Also, you don't need a Tailscale or other VPN account. You can just use SSH + tunneling, or enable a VPN on your router (and usually enjoy hardware acceleration too!). I happen to have a static IP at home, but you can use a dynamic DNS client on your router to achieve the same effect.

8mo agoHN ↗

I run a lot of small form factor (SFF) machines including NUCs, Minisforums, and a Mac Studio.

At idle, they aren't loud or consuming much electricity compared to sleep/shutdown.

Fruit co devices in particular are extremely efficient; the Studio is rated at 6W idle, 145W max consumption (cf. https://support.apple.com/en-us/102027 )

8mo agoHN ↗

Can you do the same to remotely wake up my MacBook on demand via WoL and ssh into it from my phone? What are the security risks?

8mo agoHN ↗

I don't think WOL works over Wi-Fi and whether you can get WOL from a USB ethernet adapter.

My proxy doesn't attempt to handle security. Most folks use either Tailscale or some other VPN solution. In my case I use the wireguard server in my router to VPN into home which gives me access to the proxy and consequently to the machine.

8mo agoHN ↗

What does Claude add to this? I've done coding on my phone before by sshing into my home server and just... writing code. Is there a benefit to writing code through a third party instead?

8mo agoHN ↗

I'm just as baffled. I went to the comments to better understand but I still don't get it.

I've coded on my phone on several occasions. If you use Android, you don't even need a server or a home computer since Termux works really well as it is. It can run node.js and a bunch of other development tools easily. Or you can just ssh into a server with a development environment and do your stuff their (AI or not).

8mo agoHN ↗

Yeah, I use Termux a decent amount, whether it's just updating my todo list on my home server or actually programming on it. I feel like this is just aimed at the people who want to code entire projects with LLMs, cost be damned

8mo agoHN ↗

Programming on a phone is a tough sell for many since typing is slower and you have less screen real estate to view/debug the code. Using an AI agent and typing only prompts makes it more compelling. You input less, and only occasionally have to edit code instead of writing everything from 0. And even with editing, typing a prompt like "separate the X logic from class Y into a new file/class" is much faster on mobile than the equivalent actions.

8mo agoHN ↗

Just install proper development tools on the device, some examples from my setup,

- Pydroid

- C# Shell .NET IDE

- Pascal N-IDE

- Shader Editor

8mo agoHN ↗

Can't we do the same with an SSH client such as Termius?

8mo agoHN ↗

Vibe coding is not coding (unless by vibe-coding you meant buttplug.io)

8mo agoHN ↗

Calling "telling the LLM what to do" coding is dishonest, and I have no respect for any of this.

8mo agoHN ↗

If you need this article to get the idea of using Claude Code from your phone, you won’t build anything substantial anyway.

8mo agoHN ↗

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?

---

Really, 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.

8mo agoHN ↗

Great! Another shallow dismissal is just what everyone needs right now! I don’t understand this kind of gate keeping.

AI 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.

8mo agoHN ↗

Been using exactly this setup for a year now, works great. Have 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. Looking 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.

8mo agoHN ↗

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.

8mo agoHN ↗

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

Fun 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 :)

8mo agoHN ↗

Does anyone have any good advice or resources on a good workflow to do this with web apps? There's some stuff I'd really like to solve, for myself/family, that would require a front and back-end with persistent storage.

I would love to easily be able to set this up easily when a new idea pops into my mind and then have something running (locally or securely in some cloud) within a few hours/days. I wouldn't want to spend a ton of money for this though, nor have a lot of overhead to manage.

Edit: In addition, I'd like some safeguards where I can't have the LLM of choice accidentally delete stuff or do other unintended things on my network.

8mo agoHN ↗

Replit is $25 a month but the best mobile allinone coding I have tried so far easy to push to host etc and you can kick off a stage then just pickup building where you left off anytime the termius/tmux/tailscale is fine but lot more effort even after you reach the command line. Horses for courses.

8mo agoHN ↗

Great for parties where you rather be home tinkering.

I know this is probably in jest, but when someone invites you to a party it's not because they just want your atoms in the same room as them.

In regards to doom coding: I would chop off my arms before coding/prompting on a phone. Also, think about your cervical, neck etc! I feel like I'm taking crazy pills!

8mo agoHN ↗

I host weekly friend-of-friend open events where some people show up most weeks, find a nice comfortable spot to doom scroll in for a couple hours, maybe take a nap, leave, sit in their car for a bit, scroll some more, then go home.

I am just hoping they actually took a break from doom scrolling while driving as then at least I can say I had some non zero positive impact on their lives.

5 years phone-free and I do not miss it. People use them as security blankets to avoid having to be present for more than 5 minutes at a time with other people or even just exist in their own heads. I now find this behavior immature and gross but avoiding it would mean not having friends.

A smartphone is like toilet paper. No one wants to watch you use it.

8mo agoHN ↗

Maybe host your event in a cave if you can, no cell coverage, no Wi-Fi.

There is a bar like that where I go sometimes, it is in a cave, some people got Wi-Fi from the staff, and you have some reception if you stand near the front door, but it is mostly a network-free zone and it is great.

Another thing we did from time to time at the restaurant is to put all our phones stacked in the middle of the table, anyone who picks up his phone before the end of the meal for any reason pays the bill for everyone. So far, no one did.

8mo agoHN ↗

Suddenly the one good use case for lead paint becomes clear.

8mo agoHN ↗

Very curious to hear how you went phone-free and what your setup looks like

8mo agoHN ↗

I have a mini PC hooked to screens in every room other than the bedroom and bathroom, and remote controls with built in air-mouse and keyboard (pepper jobs remotes). This way anyone can pick up a controller in any room and look something up on a shared communal screen as needed, which discourages use of private screens.

When I leave home for less than a day I pack no electronics of any kind and enjoy the peace in my own head to think about the next problems I want to solve in my universe.

I pay with cash exclusively in public so tap and pay is not an issue. If I ever need to be reachable for emergencies I can carry a pager but so far this has not been worth it.

8mo agoHN ↗

Did not expect that: I got rid of a small screen i can carry around by putting a lot of small screen all over my house.

I put that in the same bin as all the “Stop doomscrolling” apps. You can’t prevent doomscrolling by adding another app on your phone. Get rid of the phone (and all other screens), one does not need to be able to look up everything in a moments notice. Write it down on a paper and do it later.

8mo agoHN ↗

It causes a major difference. It forces all uses of screens in common spaces with others present, to be inclusive to said others. You do not open anything on shared screens you do not mean for others to participate in, so they function more as collaborative tools instead of private escapes.

Anyone can grab a remote and access to summon shared entertainment, order food, do shared research, fact check something, etc... but said screens are just linux machines with no proprietary software or magic addictive algorithms. Just tools.

Also when we walk away from them they do not follow us, and they cannot notify us.

It has completely changed the way my family and I interact with, and separate ourselves from, the internet.

If my phone battery died, I used to panic. Now with no phone, when I leave home, I am just... present, and can get lost in my own thoughts again. A skill I lost for decades with distractions always in my pocket.

Really just moving the screens further away, tethering them to walls, and ditching all proprietary addictive software is easier. Also a couple TVs and mini pcs cost less than one modern smartphone and covers the whole family.

8mo agoHN ↗

I'm with you... just with gesture input as it is, I hate using my phone for much beyond a quick comment or two. I can't imagine trying to do anything technical with a phone's onscreen keyboard. Even through an AI prompt... nope, just nope.

At worst, put your ideas into a notes app and then go back to where you are... this is just anti-social and borderline psychotic imo.

8mo agoHN ↗

Yes to the last two 100% - hence the "doom" in doom coding! I wrote the post more as a replacement to TikTok scrolling - it feels like a worse evil, but it's still not healthy.

The UI isn't as good as a laptop but maybe it's all my years of swiping, liking, and navigating between apps. In a very sad and concerning way, phone time feels like home.

8mo agoHN ↗

Account created 16 hours ago posting highly dubious AI hype? This user is almost certainly part of the intense astroturfing campaign likely financed by Anthropic that has been ongoing for days/weeks now.

8mo agoHN ↗

Did I read that right, that you have to have your computer unlocked at all times?

Yeah what can go wrong when you are travelling and your computer is at home unlocked lmao?

8mo agoHN ↗

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.

To be honest it is already starting to feel that way.

8mo agoHN ↗

Chromebook maybe but I don’t see myself using a phone unless maybe it’s voice driven. Typing up lots on phones is a pain.

8mo agoHN ↗

Fixed IPv6 workstation, ssh (pre-shared key) and vim, 4G usb modem, a "big" screen, nice battery life, "code anywhere" on your workstation (the best would be a "backpack" modular system: a RISC-V board in its case slapped to a "big" DP/eDP screen on a stand, an usb dvorak [ortholinear|columnar] keyboard, a 4[5]G usb modem (using the USB modem standard) with a IPv6 enable mobile ISP sim card, and a rather good battery pack.

(I even use a webcam to capture what my monitor does display when I do remote coding of low level GFX oriented software! Actually my wayland compositor for linux and AMD GPUs)

BTW, IPv6 = ZERO NAT to setup, delicious.

"It's magic".

8mo agoHN ↗

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?

8mo agoHN ↗

I am still trying to understand how installing Tailscale and Claude Code then connecting to your home network externally and opening a mobile terminal on your phone is a novel idea that requires a full Github writeup.

So, I do this when I am sitting on the couch and too lazy to boot up my laptop that I normally do work on, but it never gets much further than updating, pulling or pushing one or two containers, or more times than not trying to remember what port AI have something on so I can connect the companion app to it.

It's not a bad idea in full, but "death coding" is a ridiculous notion.

8mo agoHN ↗

I’m equally surprised to see these posts pop up everywhere on X, GitHub and now also HN. Am I that old that SSHing into a server through a VPN is such a novel concept nowadays?

8mo agoHN ↗

I think the commonly used platforms, ISPs, etc. make this just annoying enough that most people really don't know how easy this should be.

8mo agoHN ↗

There is an infamous "Dropbox comment" on HN that reads the same way as this comment. No idea is new, and novelty is almost never the point. I had seen people do similar things in the past but never approached it myself. Here is someone that has done the thinking for me and put it out there for free. I appreciate that.

8mo agoHN ↗

Yeah, but the OP is more like the "all you have to do is rsync and cron job". It's an article about the relatively complex step by step process that people do to implement a functionality. It may be the inspiration for an analogous dropbox, but definitely not the dropbox article or post. A product that you could grab from the app store that does all of this out of the box would be the analogue to dropbox.

That said, this would be interesting to someone who didn't know these tools could be stitched together in this way. I think that's a big part of why it's on the home page.

8mo agoHN ↗

Y'all I'm as shocked as you are it's on the home page!

I'm new to hacking (come from an electrical/nuclear engineering background but never did much with software). For reference, just learned what postgres was 2 months ago.

Took a lot of tinkering to figure out but that's more a skill rather than complexity issue. Working from a laptop is certainly better, but was able to get good amount done (like building v1 of a backend and setting up a cloudflare tunnel for a PC) on a long bus ride where I would've gotten side eyes for using a laptop.

I'm no doctor but I'll bet "Doom Coding" is still not healthy but it's better than doom scrolling on X.

Thank you for the comments! I've been learning from these threads (Like tmux or dropbox article lore)

8mo agoHN ↗

Why would it have to be novel? We now have a full interesting discussion about vibe coding on phones thanks to this GitHub writehub that we wouldn't have had otherwise.

I haven't set up a vibe coding phone environment, nothing has stopped me at all as I agree it is really simple/"basic", but this post made me actually go do it.

8mo agoHN ↗

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.

Or, 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.

8mo agoHN ↗

down time is supposed to be down time.

Life doesn't have down time. Should we avoid learning new things because no one is paying us to learn?

One of my favorite uses of AI is to quickly make some simple 'hello world' level application that I can run using a given technology.

Don'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

As 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.

And 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.

I'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.

8mo agoHN ↗

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.

8mo agoHN ↗

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.

FWIW 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.

That 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.

8mo agoHN ↗

Maybe I'm just lacking in creativity, but I don't see the appeal of developing anything with less than 2 monitors and a full-sized keyboard. Even for those who find the act of coding intrinsically entertaining, do you want to dance so badly that you'll do so even if you can only use one leg?

8mo agoHN ↗

I'll bite (even though I think the proposed setup is dumb tbh) : why do you need 2 monitors? Can't you just alt-tab from one window to another?

FWIW I do code on the go and I 100% prefer to code at home with my neat setup... but also quite often when I'm on the move and inspiration strikes, I do enjoy having a way to tinker right here and there.

8mo agoHN ↗

I can, but I find the friction it induces to be extremely irritating. I have to memorize snippets of documentation before switching back instead of just having it open on the other monitor to reference at a glance. Plus the act of switching windows itself is extra keystrokes/touch gestures and tedium. Coding on a small touch screen sounds like absolute hell. Like being forced to drive in stop-and-go traffic with a manual shift.

I'll do it only if I have no other choice (i.e. logged into a remote terminal-only server at work). If I have some flash of inspiration I'll write it down in Google Keep and try it out when I get back to my 3-monitor workstation.

But hey, we're all wired different

8mo agoHN ↗

How are they more keystrokes between one screen and N screens? Don't you have to switch windows regardless of their visibility? I mean if you copy then paste elsewhere you still the same number of key strokes, don't you? Maybe I'm missing something.

Regardless what I'm suggesting, and I believe OP too, is NOT to replace your setup with a mobile one, only that they can complement each other. Namely if you are on your way somewhere, you do not have to stop programming, you can still do it even though in a different way, so I do not believe comparing them helps. The point is not to convince somebody to go from their favorite setup to something they like less, rather to show other ways in which some parts of the process are still acceptable on the go. Nobody is suggesting to remove a screen or keyboard.

8mo agoHN ↗

I prefer using a VPS instead of an old laptop. 2 improvements I’d recommend:

1. Use tmux to keep sessions alive

2. Launch Claude Code using the —-dangerously-skip-permissions flag to avoid annoying pauses in execution

It’s like having a team of full-time interns running in the cloud building your software

8mo agoHN ↗

How about using syncthing instead of ssh?

I explain: instead of enabling ssh to your computer, which may make some users uncomfortable, you use syncthing to sync the folder of the project you are working on. You can open claude code in any android terminal and keep working on the latest changes of your folder. No shell access given.

Anyone?

8mo agoHN ↗

Is this what the kids call "being performative" looks like? If you do this in my party, then please shut the door on the way out.

8mo agoHN ↗

FYI I just now caught a critical missing step of disabling IPv4 in your Tailscale settings to doom code via cell service. Many of you probably did not have an issue figuring out that missing step - but for those of you like me, apologies for not passing along the time-saving lesson learned!

8mo agoHN ↗

You beat me and described this setup first. I saw your post as I was writing mine. I referenced your page on my blog :D

I think TMUX also deserves a mention

https://mjqs.blog/meta/