---
title: "Deploy Gajae-Code | Cloud Coding Agent on Your Coding Plan"
description: "Gajae-Code (gjc) agent on your Claude/Codex plan. Browser terminal + SSH."
category: "AI/ML"
url: https://railway.com/deploy/gajae-code
---

# Deploy Gajae-Code | Cloud Coding Agent on Your Coding Plan

Gajae-Code (gjc) agent on your Claude/Codex plan. Browser terminal + SSH.

**[Deploy Gajae-Code | Cloud Coding Agent on Your Coding Plan on Railway](https://railway.com/template/gajae-code)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/gajae-code/manifest.json

- **Creator:** Two Workspaces
- **Category:** AI/ML

## Template content

### gajae-code https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/v0.19.2/assets/character.png

- **Image:** ghcr.io/two-workspaces/gajae-code:528186b
- **Health check:** /healthcheck
- **Public domain:** Yes

## Documentation

# Deploy and Host Gajae-Code on Railway

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/new/template/gajae-code?referralCode=sLjDXb&utm_medium=integration&utm_source=button&utm_campaign=gajae-code)

[Gajae-Code](https://github.com/Yeachan-Heo/gajae-code) (`gjc`) is an open-source (MIT) coding-agent harness that runs on a coding plan you already pay for: Claude Pro/Max, ChatGPT Plus/Pro (Codex), GitHub Copilot, Cursor, Kimi, GLM, MiniMax and more, or any of 50+ API-key providers. It can plan before it edits and send its questions to Telegram, Discord or Slack so you can answer from your phone. This template runs it on an always-on Ubuntu 24.04 box that you reach from a terminal in your browser or over SSH. Your home directory lives on a volume, so repos, logins and sessions survive every redeploy.

## About Hosting Gajae-Code

One service, one volume at `/root`. The image contains:

- `gjc` (the official prebuilt Linux binary, checksum-verified), `git`, `gh`, Node 22, Python 3 with `uv`, `tmux`, `ripgrep`, `jq`, `vim` and build tools
- a `ttyd` web terminal behind a basic-auth login
- an OpenSSH server (password or key login)

The web terminal and SSH both drop you into the same `tmux` session. You can start a long run from your laptop and check on it from your phone. SSH host keys are stored on the volume, so your client never shows a "host key changed" warning after a redeploy.

Gajae-Code is beta software: upstream says to expect rough edges and to verify its output before relying on it for important work.

## Common Use Cases

- Leave a coding agent working 24/7 on your existing Claude or ChatGPT subscription, without keeping your laptop open
- Answer the agent's questions from Telegram while you are away from the keyboard
- Code from an iPad, Chromebook or phone: the browser terminal needs no SSH client
- A persistent root workspace with a stable IP for side projects, scraping and CI debugging

## Dependencies for Gajae-Code Hosting

- A coding plan (Claude, ChatGPT/Codex, Copilot, Cursor and others) or an API key from any supported provider

### Deployment Dependencies

- [Gajae-Code on GitHub](https://github.com/Yeachan-Heo/gajae-code)
- [Environment variables and provider keys](https://github.com/Yeachan-Heo/gajae-code/blob/main/docs/environment-variables.md)
- [Telegram onboarding](https://github.com/Yeachan-Heo/gajae-code/blob/main/docs/telegram-onboarding.md)
- [ttyd](https://github.com/tsl0922/ttyd) web terminal

### Implementation Details

**First use:**

1. Open your Railway domain and log in as `WEB_USER` with the generated `WEB_PASSWORD` from the service's Variables tab.
2. Clone a repo into `~/src` and `cd` into it. `gjc` started in `~` switches to a temporary directory.
3. Run `gjc`, then `/login` and pick your plan. Browser logins print a URL to open on your own device; for ChatGPT pick `openai-codex-device`, the headless flow.

**API keys instead of a plan:** set `OPENROUTER_API_KEY`, or add any provider's usual variable (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`...) in Railway and redeploy. All `*_API_KEY`, `*_OAUTH_TOKEN`, `*_BASE_URL` and `GJC_*` variables are also exported to SSH sessions.

**Phone answers:** run `gjc notify setup` once and follow the prompts for Telegram, Discord or Slack. Notifications are off until you do.

**SSH:** Railway creates a TCP proxy for port 22 on deploy. Copy the host and port from Settings → Networking and run `ssh root@‹host› -p ‹port›` with `ROOT_PASSWORD`. For key-only login, add your public key to `AUTHORIZED_KEYS` and clear `ROOT_PASSWORD`.

**Handy commands inside the box:**

- `gj` starts Gajae-Code inside a detachable `tmux` session named `gjc`. Run `tmux attach -t gjc` to resume it.
- `gjc -p "task"` runs one task headless and exits.
- `gh auth login` (or setting `GH_TOKEN`) lets you push to GitHub.

Notes and limits:

- Using a subscription from a cloud box is between you and your provider. Check its terms; some plans restrict use outside their own apps.
- You are root. Anything you install outside `/root` disappears on redeploy. Anything under `/root` stays.
- There is no Docker daemon inside the box.
- The web terminal password is the whole security model for a root shell. Keep it strong and do not share the URL.

## Why Deploy Gajae-Code on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Gajae-Code on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [Weaviate](https://railway.com/deploy/weaviate-1) — Vector database with hybrid search and an API key-protected API
- [Möbius v0.1 Personal AI OS](https://railway.com/deploy/mobius-v01-personal-ai-os) — Self-hosted AI agent that builds and runs apps for you, with memory.

Open this page in a browser: https://railway.com/deploy/gajae-code
