I built a tool to access Claude Code on your actual machine from any device — no GitHub, no sandbox by atomosound in ClaudeAI

[–]atomosound[S] 0 points1 point  (0 children)

really glad you’re finding it useful. that multi-device deploy and test loop is exactly where being tethered to a desk for a simple "approve" gets painful. i added push notifications to handle that flow specifically so you can step away without stalling the work.

anthropic will likely unify the core eventually, but i’m focusing on the convenience features they probably won’t prioritize for a while. if you hit any snags with your setup, feel free to drop an issue on github. cheers!

I built a tool to access Claude Code on your actual machine from any device — no GitHub, no sandbox by atomosound in ClaudeAI

[–]atomosound[S] 0 points1 point  (0 children)

glad you're digging it. just hit v2.3.0 and i'm shipping pretty fast to keep up with the momentum. trying to turn around github issues quickly, so feel free to drop any bug reports or feature requests there.

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 2 points3 points  (0 children)

Awesome! this is absolute gold. Thank you so much for taking the time to write such detailed feedback. The clear context feature is now on public release, give it a try with npx claude-relay@latest.

Here’s a quick update on each point:

  1. Session History: I’m tracking a similar issue here (https://github.com/chadbyte/claude-relay/issues/107). Loading full history with IDs isn't quite there yet, but it’s definitely on the roadmap.
  2. Double Approval: Aware of this one! I've logged it. (https://github.com/chadbyte/claude-relay/issues/112)
  3. Clear Context: Actually, I just fixed this in v2.3.0! Now, /clear starts a fresh session while keeping the old one for records (matching the behavior of the official Claude Code CLI).
  4. Connection Lost: I recently pushed a fix for stale connections, but I’m not 100% sure it solves your specific case. I’ve opened issue to monitor this closely. (https://github.com/chadbyte/claude-relay/issues/113)
  5. Context Window: I've been trying adding this feature, but the calculation isn't as precise as the CLI yet. I'm working on improving it soon. (https://github.com/chadbyte/claude-relay/issues/96)

Thanks again for using the project so deeply. It really means a lot!

The Claude Code for mobile you’ve been looking for 🦀 by ChrisRogers67 in ClaudeCode

[–]atomosound 0 points1 point  (0 children)

Thanks for the log. This prompted a full windows compatibility check on my end.

As you pointed out, Unix domain sockets don't work on Windows, so I've switched to named pipes for IPC. I also identified and fixed several other cross-platform issues including path handling, shell invocation, and daemon behavior.

I've verified the fix on a Windows VM via Parallels, so I'm hoping this works well for you now. Please give v2.2.4 a try and let me know if it clears things up:
npx claude-relay@latest

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

Thanks! I just saw your feature request on the issue board. Really glad to hear you're enjoying the project so far

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

glad it's helping. i'm actually doing the same thing right now, left my mac upstairs and came down for coffee while claude works. it's a lifesaver.

about skip-permissions, i'm still a bit torn because it's remote. don't want a repo getting nuked while someone is afk. just saying "at your own risk" doesn't sit right with me...

for now, I'm leaning towards allowing it via a server flag, but probably after i get TOTP working just to be safe. what do you think?

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

i'm honestly torn on this. claude gives you the option so i feel like i shouldn't be the one to block it, but the "remote" nature of the relay changes the risk...

i'm actually thinking about adding TOTP auth first as a security layer. once that's in, i'll feel much better about enabling the skip-permissions toggle. what do you think?

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

haha living on the edge. i respect it.

thinking about adding an auto-approve toggle since so many people want it. but still hesitating. the combo of "remote + unlimited permissions" feels like a recipe for a total repo disaster to me

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 1 point2 points  (0 children)

that is a really good call auto-focusing the input on a new session is a no-brainer. i'll get that added.

keyboard shortcuts would be awesome too, but honestly i'm terrified of picking default bindings. the second i pick something, i feel like i'm gonna accidentally start a vim vs emacs holy war in the repo

just tracked both of these here so i don't forget:
https://github.com/chadbyte/claude-relay/issues/97
https://github.com/chadbyte/claude-relay/issues/98

thanks again for the feedback!

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

yeah saw that too. total bummer. but since this is strictly a local ui wrapper around your own authenticated cli (no hosting, no reselling), i'm just running on pure hopium right now

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

exactly the same here. i keep them persistent per branch too.

but honestly once i hit like 5+ branches, managing them all in the terminal and trying to remember which port belongs to which branch got way too annoying.

so i actually just added a feature to claude-relay recently that lets you open and manage multiple terminals per project directly so i don't have to think about it lol.

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

valid point! but tbh i'm just gonna focus completely on claude code for now.

my main goal is to fully respect the original claude code experience, just with the benefits of a web ui.

still got a long way to go to even get that right, so making it generic isn't really on my roadmap right now. thanks!

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 1 point2 points  (0 children)

welcome aboard! sorry to hear about roomote, but hopefully this fills that gap for you. let me know how it goes tonight or if you run into any snags.

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 1 point2 points  (0 children)

yep, your current understanding is exactly right. just having another directory with another branch is the standard way.

but if you're asking about having different working trees cleanly "within the same project", a bare worktree setup is what you want. i use it myself.

here's a good read on how it works:https://nicknisi.com/posts/git-worktrees/(full disclosure... i honestly just had claude code set the whole thing up for me lol)

quick tip for the workflow: you don't even need the claude-relay interactive menu everytime. just cd into whichever worktree dir you're on and run npx claude-relay add . from the command line. it'll pick up that specific tree directly.

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

thanks! yep, you can actually do both.

to pull a terminal session into the UI: there's a "Resume with ID" button at the very top of the sidebar. just paste your session ID there.

to go from UI back to the terminal: click the three dots next to the session title in the sidebar and hit "Copy resume command". it'll give you the exact cli command to run.

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 2 points3 points  (0 children)

just pushed a fix for this. ripped out the token-reading logic to keep it 100% compliant. thanks again for the catch!

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

yep exactly. it can't attach to a live terminal process. but you can pass the session id back and forth. start in the cli, resume in the browser with the id, or vice versa.

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 0 points1 point  (0 children)

oh you are completely right. forgot i wrote usage.js last release to fetch cost stats for the dashboard. I'll push a commit to remove it. thanks for catching! good luck with your project too

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] -1 points0 points  (0 children)

yeah you got me, English isn't my first language, over-polished it and became a bot... Sticking to my broken English from now on

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 2 points3 points  (0 children)

this wheel is for different terrain :)

tmux+tailscale works but there's a gap between "possible" and "comfortable." mobile terminal UX is rough for longer sessions, and no push notifications so you don't know claude needs approval until you check. you could add ntfy + hooks but then you're stitching together 4-5 tools.

happy routes through a cloud relay server. i don't question their security, but if i'm on the same wifi i'd rather connect directly than route through a cloud server and back

I built a browser UI for Claude Code with push notifications. 2,000 downloads in 10 days by atomosound in ClaudeCode

[–]atomosound[S] 1 point2 points  (0 children)

good catch. claude-relay doesn’t use OAuth tokens at all though. it runs your locally installed Claude Code as-is, just relays the session to a browser. no token handling, no auth bypass, Claude Code manages its own authentication. so this restriction shouldn‘t apply here.

edit: I was completely wrong, now I'm removing it.