Skip to main content
Connect a GitHub repo to Reminix and every push to your default branch becomes a deploy. This is the most common path to production — no CLI required. If you’d rather drive deploys from a script or CI pipeline, see reminix deploy instead.

Before you start

Your repo needs three things:
  1. The Reminix runtime in your dependencies — @reminix/runtime for TypeScript or reminix-runtime for Python
  2. A call to serve() somewhere in your code
  3. A recognized entrypoint file at the project root (or in the subfolder you point Reminix at)
LanguageEntrypoint files (Reminix tries them in order)
TypeScript / JavaScriptserver.ts, agent.ts, index.ts (or .js equivalents)
Pythonserver.py, agent.py, main.py
A minimal repo looks like:
my-agent/
├── server.ts
├── package.json
└── tsconfig.json

Connect your repo

1

Open the new project page

Sign in and go to reminix.com/new — the Deploy a new project page.
2

Pick Import Git Repository

Under Import Git Repository, sign in with GitHub if you haven’t yet. Reminix uses a GitHub App for repo access — approve the install on the org or user that owns the repo. You only need to do this once per org.
3

Choose the repo

Pick the repository from the list. If your code lives in a monorepo subfolder, you can also paste a URL into Import from URL and pass branch and folder.
4

Name the project

On the Deploy Project screen, set the project name and slug, pick the organization, and click Deploy.
5

Add secrets

After the project exists, open Settings → Secrets and add any environment variables your handler needs (OPENAI_API_KEY, database URLs, etc.). See Configuration & Secrets for the full reference.
The first deploy starts automatically. After that, every push to the connected branch triggers a new build.

What Reminix does on deploy

The deployment detail page in the dashboard shows four steps as your build progresses.
1

Preparing

Reminix fetches the source for the configured commit, looks for a recognized entrypoint at the project root, and decides whether the project is TypeScript or Python.
2

Building

Dependencies are installed from package.json (npm/pnpm/yarn/bun lockfiles are honored) or from requirements.txt / pyproject.toml, then a container image is built. For TypeScript, tsx is auto-installed so .ts entrypoints run without a separate compile step.
3

Deploying

The container starts and runs your entrypoint. serve() binds to 0.0.0.0:8080 and the runtime publishes a manifest that registers each agent at POST /v1/agents/{name}/invoke and each tool at the project’s MCP endpoint.
4

Complete

Your agents and tools are live. The deployment is marked Complete and starts handling traffic.
If anything fails, the deploy lands on Error with the failing step and message in the build logs.

Watching a deploy

You can monitor a deploy from either the dashboard or the CLI.
Open your project, then Deployments. The list shows each deploy’s status, commit SHA, branch, and timestamp. Click into a deploy to see the build steps stream in real time and to inspect the build logs.

Trigger a deploy without pushing code

Sometimes you want to redeploy the same commit — for example after rotating a secret or upgrading the runtime.
  • Dashboard: open Deployments and click Trigger Deployment (top right). Reminix builds a new deploy from the latest commit on the connected branch.
  • CLI: run reminix deploy from a checkout. This uploads whatever’s on disk locally — including uncommitted changes — useful for hotfixes when you can’t push.
Trigger Deployment is only available for projects connected to a GitHub repository. Empty projects deploy via the CLI only, until you connect a repo.

Add a “Deploy to Reminix” button to your README

If you maintain a public template or example, the deploy badge gives anyone a one-click path to spin up their own copy. Deploy to Reminix Drop this snippet in your README:
[![Deploy to Reminix](https://reminix.com/badge/deploy.svg)](https://reminix.com/new/deploy?repo=OWNER/REPO)
Replace OWNER/REPO with your GitHub repo. When someone clicks the badge, they land on the Reminix import flow with the repo pre-filled — they sign in (if needed), name their project, set any required secrets, and deploy.

Badge URL parameters

ParamDefaultDescription
repo(required)GitHub repository in owner/repo format
branchmainBranch to clone from
folder(repo root)Subfolder within the repo to use as the project source
A full example with a non-default branch and a monorepo subfolder:
[![Deploy to Reminix](https://reminix.com/badge/deploy.svg)](https://reminix.com/new/deploy?repo=acme/my-agent&branch=main&folder=examples/starter)

Things to check if a deploy fails

  • Wrong entrypoint name. Reminix only looks for the filenames in the table at the top of this page. app.ts or run.py won’t be picked up.
  • Missing serve() call. Without serve(), the runtime exits immediately and the deploy is marked failed.
  • Listening on localhost. serve() defaults to 0.0.0.0. If you’ve overridden host/hostname to localhost or 127.0.0.1, the agent is unreachable inside the container.
  • Missing secret. A reference to process.env.OPENAI_API_KEY will be undefined if you forgot to set the secret in the dashboard. See Troubleshooting for the full list.

Next steps

Configuration & Secrets

How to set environment variables and read them at runtime.

CLI deploys

reminix deploy for script-driven and local deploys.

Troubleshooting

Common deploy and invocation failures.

TypeScript: Deploying

The TypeScript-specific deploy reference.