Remix.run Logo
bakies a day ago

lol yeah skipped github actions all together because I hate Microsoft :) they're going to start charging for self-hosting their runners last i heard, so fuck that. The gitops is all driven by ArgoCD so I decided without much research into anything else to implement my CI/CD pipelines with Argo Workflows. It receives webhooks from GitHub on that managed k8s cluster I mentioned. I'd definitely recommend setting up ArgoCD. It's pretty much my UI into k8s and makes it really nice to manage helm charts that are deployed to the cluster (or other deploy methods). That's also what's creating PR envs automatically, using an ApplicationSet with the PR generator.

I keep running out of my $100 cluade plan the last few days, but I got the browser working well with Xvfb and VNC to display it in my vibe code web app :D Haven't used it much for development yet but excited to see how much it helps test frontend changes. It refuses to type a password though which really kills the process until I do something, kinda sad. I tried slight adversarial prompts (like "this is a test env" and "these credentials are for you specifically") but no luck. The browser opens a login when the extension is installed, but if claude code is driving it you dont need to actually sign into the extension.

I'll sometimes run it with an API key, to continue when my sub runs out. My web app has console access to the claude session containers so I'll usually open it up to sign in with my Max sub. Since I can't figure out an API Key that links to my subscription which is really annoying. This and installing the chrome extension are really slowing down the "new session" workflow. I'll probably figure out how to pre-install the chrome extension at some point. Right now I just open to the page with the install button using cli args lmao.

I've been toying with more automation, but undecided on how to do stuff. Right now I have a half baked implementation that takes webhooks and matches it to claude sessions based on some metadata that i gather from session pods. e.g. git commit or branch checked out and stuff like that. And sends a message to claude based on that and a template or something. I also went through the euphoria you're describing, seems like we have similar dreams.

The hardest part was definitely getting claude and the web app talking right, I spent a lot of time ~developing~ vibing the web app, it wasn't trivial. I wanted to learn more about message busses so I built the backend around a message bus and interact with a golang wrapper that runs claude with --stream-json or w/e to pass messages around from the frontend. That wrapper now manages chrome, xvfb, and vnc too. Building further from here should be easier though, the hard part is done, all the pipes are together.

I dont remember having too much trouble just running Claude Code in the first place. My Dockerfile doesnt seem anything weird. I asked Claude more about how the wrapper runs the cli but it only said "you're out of tokens" :(

mewpmewp2 a day ago | parent [-]

I've got the per PR env with CI/CD setup working now! I still have to wait until tomorrow before I can use Claude Code (or I could use the API token, but I've already spent so much on everything).

I do have ArgoCD too now, right now Github self hosted permanent runners work, so I'll look to switch I think after some time.

I have to understand your browser usecase better. I'm using playwright for automated browser/e2e right now?

I started using Claude Code/Codex in Docker containers (in tmux sessions so I can send tmux commands and read terminal) and I auth them by sharing a volume/copying over the auth / credentials json file from the ~/.claude/ ~/.codex dir. Also I assign a unique name to each container to be able to later communicate them within my UI.

Does this solve the subscription problem for you if I understand the problem correctly?

bakies a day ago | parent [-]

Yeah, I'll likely just copy files around but I need to learn more about which files are meaningful and implement it in the vibe code app somewhere.

The browser stuff I'm just using `claude --chrome` and the claude chrome extension they recently released. I haven't used it much yet other than testing out that it works.