[HN Gopher] Show HN: uvx ptn, scan a QR, get a terminal in your ...
       ___________________________________________________________________
        
       Show HN: uvx ptn, scan a QR, get a terminal in your phone
        
       Scan QR - web terminal - vibe coding in bed. Mobile-first terminal
       via Cloudflare Quick Tunnel. No port forwarding. Feedback welcome.
        
       Author : yxl448
       Score  : 87 points
       Date   : 2026-01-03 04:22 UTC (18 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | phs318u wrote:
       | Love it.
       | 
       | Laziness - the mother of (most) invention.
        
       | arisylafeta wrote:
       | Love it, I've been looking for something like this for a while
       | now. But please add a password to it if you have the time. I
       | might chip in by next if you're open to contributions.
        
         | yxl448 wrote:
         | I actually thought about it. will be added in a future release.
        
         | yxl448 wrote:
         | uvx ptn -p for a one-time disposable pwd!
        
       | simonw wrote:
       | "Warning: The URL is the only authentication. Anyone with the
       | link has full terminal access."
       | 
       | Could you make it so the URL is one-use only, such that once
       | you've scanned it with your phone you can stop worrying because
       | anyone else who uses it won't be able to start a session?
        
         | yxl448 wrote:
         | it is indeed disposable and the prefix is like your secure key.
         | it is safe unless someone has access to your screen. I can add
         | an option to permit a single session.
        
           | stogot wrote:
           | I would argue that it should be the default option. Cool
           | idea!
        
       | thomasht86 wrote:
       | I wanted a secure solution, that still can be run in one command,
       | and came up with this,
       | https://gist.github.com/thomasht86/86f0f8f62db1839054abd8a7e...
        
       | kosolam wrote:
       | I'm also vibing from the iphone. Termius connects via ssh to
       | remote server where I run claude code. Ssh connects also over a
       | wireguard connection. So ports are not an issue because they are
       | all available via wg in a secure way. Additionally I have code
       | server running there automatically port forwards and giving me
       | ssl. So when I run "pnpm dev" in tmux in ssh then I access it via
       | https://3000.dev.mydomain.com which works great for development.
        
         | hrimfaxi wrote:
         | Can you speak more to the code server and domain set up? How do
         | you get it to auto provision subdomains?
        
           | kosolam wrote:
           | Sure, code-server is a web version of vscode, like the github
           | spaces thing only selfhosted.
           | 
           | I have acme.sh creating the certs using let's encrypt. I have
           | a reverse proxy (haproxy) in front of code server. This
           | handles ssl.
           | 
           | The port forwarding and mapping to a subdomain is automatic -
           | it's a feature of code server: https://coder.com/docs/code-
           | server/guide
           | 
           | From the docs: code-server --proxy-domain <domain>
        
       | ballpug1xtr wrote:
       | Further information concerning tunneling protocols, sshd/ ssh is
       | accessible in the man site:
       | 
       | [1]:https://man.openbsd.org/sshd.8
       | 
       | [2]:https://man.freebsd.org/cgi/man.cgi?ssh
        
       | reimuwu wrote:
       | > I wanted to vibe code from bed.
       | 
       | In this case, I think using Termux + SSH would be more convenient
       | and compatible with all devices running sshd.
        
         | stoneforger wrote:
         | Yes but that's boring. Look at this it has cool ASCII and a QR.
         | At this point no typing, just vibe-voice ask to build the thing
         | and fix the error. Then we can have some tea, earl grey, hot.
        
       | sa-code wrote:
       | I can recommend tailscale for creating private networks. It has a
       | generous free tier and would reduce the attack surface
       | considerably compared to ngrok
       | 
       | Better yet would be setting up your own wireguard instance and
       | not relying on free lunches. But as far as free lunches go
       | tailscale would be my preferred option
        
         | baq wrote:
         | tailscale has a much better chance to work when you need it
         | most. WireGuard is blocked by too much stuff.
        
           | roflchoppa wrote:
           | I've never noticed wireguard be blocked by something, have
           | you experienced this?
        
             | baq wrote:
             | many times in public/hotel wifis. it's usually places which
             | blanket ban UDP and allow TCP 80 and 443 exclusively.
             | tailscale somehow manages to get a connection.
        
           | ffsm8 wrote:
           | Tailscale uses wireguard.
           | 
           | What it provides is a opinionated configuration management -
           | which is admittedly great which is why I use it as well, but
           | it's nonsensical to say tailscale works in places where
           | wireguard is blocked.
           | 
           | You're likely just noticing the preconfigured nat traversal
           | which tailscale provides and never set one up yourself, as
           | you'd need a static IP for that and it's unconfigured by
           | default.
        
             | BrandoElFollito wrote:
             | > it's nonsensical to say tailscale works in places where
             | wireguard is blocked
             | 
             | I have two machines on my desk, I configure a wg service on
             | both. I also configure tailscale on both. Everything works.
             | 
             | I move one machine to another network, at a friend's place.
             | 
             | Wg does not work anymore. Tailscale works. So this is very
             | much sensible to say what GP said.
             | 
             | Now, you can have all kinds of explanations about why wg
             | dos not work and ts does, you know STUN, DERP, ts using wg
             | under the hood, and whatnot but the facts are cruel: I
             | cannot wg to my machine, but I can ts.
        
               | ffsm8 wrote:
               | I was just pointing out that the statement wrt "wireguard
               | being blocked while tailscale works" is nonsensical.
               | 
               | It remains nonsensical no matter how uninformed the user
               | may be - even if he's proud of being such, as you seem to
               | be.
               | 
               | This was not a discussion about what tool to use if the
               | person doesn't know about networking and is generally ...
               | "less technical".
        
               | solarkraft wrote:
               | Right, it's that specific person's Wireguard
               | configuration, which is likely a typical one as a result
               | of Wireguard's defaults. Tailscale's defaults work
               | better, hence the surface-level impression that plain
               | Wireguard does not work in cases in which Tailscale does.
        
         | bonsai_spool wrote:
         | Head scale is a good middle option - it uses Tailscale's DNS
         | system but you are able to control your network as you would
         | with Wireguard
        
       | brap wrote:
       | I like this but I hate how everything has to be tied to AI now to
       | get attention. "I wanted to vibe code-" who cares? It's a neat
       | tool, do we have to force AI into it?
        
         | solarkraft wrote:
         | It's the tool's use case, which provides valuable background
         | information about its technical choices.
        
       | gschizas wrote:
       | This command:                 lsb_release -cs
       | 
       | Doesn't work for Linux Mint 22.2
       | 
       | What you want is UBUNTU_CODENAME from /etc/os-release (in the
       | case of Linux Mint 22.2, it's "noble")
       | 
       | EDIT: Actually, I'm not even sure you can do $(command) inside
       | /etc/apt/sources.list.d/*
        
         | yxl448 wrote:
         | Try again. I don't have mint instance to test, but should work
         | now.
        
           | gschizas wrote:
           | I had already fixed the sources file manually, but the "any"
           | distro should probably work as well (I put "noble" when I did
           | the manual edit).
           | 
           | Thanks though for the fix.
        
       | smithclay wrote:
       | This is great. If you're skeptical, vibe coding in the go is
       | great because of how async the agentic coding workflows can be.
       | Nothing like fixing a bug in the dentist office.
       | 
       | Lots of different technical solutions for how to do this,
       | including the Claude and ChatGPT mobile apps nowadays. I use
       | Tailscale. Choose what works best for you and enjoy.
        
       | mark_l_watson wrote:
       | Very cool, indeed.
       | 
       | One nit-pick: Terminus requiring a lot of setup work:
       | 
       | Terminus is trivial to use with a rented VPS. But, ptn solves a
       | different problem
        
       | MarsIronPI wrote:
       | Genuine question here: How is this better than a mobile SSH
       | client + something like Tailscale or Yggdrasil?
        
         | yxl448 wrote:
         | fast and disposable? (btw it also works like a tmux with UI)
        
           | rubslopes wrote:
           | Agreed. I already use Termux for Claude code via ssh in my
           | phone, but I'm nevertheless excited to try this.
        
       ___________________________________________________________________
       (page generated 2026-01-03 23:01 UTC)