Remote development for AI agents · Beta

Describe the change. Review it live. Keep your machine untouched.

From Codex, Cursor, or Claude Code, Flex opens an isolated workspace for your real application, runs the stack, implements the change, and returns a live preview. Keep iterating in the same conversation, then create a pull request when you are satisfied.

✓ GitHub + Hosted Apps ✓ Tenant-isolated ✓ Review before pull request
preview.flexenv.com/acme-dashboard
Live

Agent activity

Acme Dashboard

Codex
Add a billing status filter and make overdue accounts easy to spot.
✓

Workspace ready

Real source · isolated runtime

✓

Application running

Preview stays live as files change

3

Files changed

Filter, query, and focused tests

â—‹

Waiting for approval

Nothing sent for review yet

Ask for another change. This workspace stays open.

Billing operations

Account health

AC

Accounts

1,284

Overdue

38

Healthy

96%

Billing status Overdue ⌄
38 results

Northstar Labs

Enterprise · £12,400 ARR

14 days overdue

Acorn Systems

Growth · £5,800 ARR

6 days overdue

Daybreak Studio

Starter · £1,200 ARR

2 days overdue
✓ Live preview updated just now

0

local files changed

1

stable preview URL

Real stack

running in isolation

Your approval

before pull request

Why Flex

Your agent asks. Flex does the heavy lifting.

Your coding agent remains the familiar control surface. Flex supplies the environment, the implementation runtime, the live application, and the safe path to review.

A real running application

Flex checks out the registered source, starts its configured runtime, and gives the agent a live application—not just a diff to describe.

One continuous edit loop

Follow-up requests return to the same remote workspace and update the same preview URL, so the conversation and the result stay together.

A controlled handoff

See changed files, failures, and preview state first. GitHub work becomes a pull request only after you explicitly ask Flex to send it for review.

The development loop

From request to review without leaving your agent.

No local dependency setup. No background branch management. No guessing whether the application still runs. Flex makes the working result visible early and keeps it reviewable throughout the change.

  1. 1

    Describe the outcome

    Ask naturally from Codex, Cursor, or Claude Code. The agent finds only sources registered to your Flex tenant.

  2. 2

    Flex opens the workspace

    A resident runtime agent implements the request inside an isolated environment while your checkout remains untouched.

  3. 3

    Review the live result

    Open the stable preview URL early. Ask for follow-up changes and watch that same application update in place.

  4. 4

    Send it for review

    When the result is ready, explicitly ask Flex to create or return the GitHub pull request. Until then, it remains draft work.

Built for real product work

More than a remote sandbox.

Flex joins the parts that normally break the flow: tenant-safe source discovery, runtime configuration, live preview routing, contextual follow-up work, secrets, and the final review boundary.

GitHub repositories Flex Hosted Apps Node · .NET · Python · PHP

01 · Source-aware

The right code, already scoped

Agents see registered repositories and ready Hosted Apps for the authenticated tenant—not arbitrary clone URLs.

02 · Runtime-aware

The actual stack, kept running

Flex uses the configured command, port, language runtime, resource profile, setup instructions, and agent notes.

03 · Secret-safe

Values bypass the model

For a missing repository secret, the agent prepares a single-use upload command. You enter the value directly into your terminal.

04 · Review-aware

Draft until you say otherwise

Preview and iterate first. GitHub pull-request creation is a separate, explicit action rather than an automatic side effect.

Connect

Use the coding agent you already have.

One remote MCP endpoint gives Codex, Cursor, or Claude Code the same tenant-scoped Flex development loop.

First, create your Flex MCP access token.

The one-click default follows your current tenant role. Open Advanced permissions to reduce it—for example, select only ManageWorkspaces for a workspace-only token. Add ManageRepositories, SubmitReviews, or PrepareSecrets only when the agent needs those capabilities. A token can never receive permissions above its creator's current role.

CX

Codex

~/.codex/config.toml

+
export FLEX_API_KEY="..."

[mcp_servers.flex]
url = "https://flexenv.com/mcp/agents"
bearer_token_env_var = "FLEX_API_KEY"
default_tools_approval_mode = "writes"
Read the Codex MCP documentation →
CU

Cursor

~/.cursor/mcp.json

+
export FLEX_API_KEY="..."

{
  "mcpServers": {
    "flex": {
      "url": "https://flexenv.com/mcp/agents",
      "headers": { "Authorization": "Bearer ${env:FLEX_API_KEY}" }
    }
  }
}
Read the Cursor MCP documentation →
CC

Claude Code

.mcp.json

+
export FLEX_API_KEY="..."

{
  "mcpServers": {
    "flex": {
      "type": "http",
      "url": "https://flexenv.com/mcp/agents",
      "headers": { "Authorization": "Bearer ${FLEX_API_KEY}" }
    }
  }
}
Read the Claude Code MCP documentation →
Beta authentication: Flex currently accepts personal, role-capped access tokens on this endpoint. OAuth browser login is not enabled yet. Keep the token in user-local configuration or an environment variable and never commit it to the repository.

Agent guidance

Make the remote loop the natural default.

Flex advertises remote-first guidance when the MCP connection starts. You can reinforce it in your repository and let the agent configure the registered runtime without exposing secret values.

Repository instructions

AGENTS.md, CLAUDE.md, or a Cursor project rule

+
## Flex development

When the user asks for a live preview or asks to work in Flex:

- Inspect this checkout read-only for context; do not edit it.
- Use the Flex MCP tools to find the registered source.
- Use detailed, evidence-based product and repository descriptions to make source
  discovery and preview-product selection reliable.
- Start one remote workspace and return its preview URL early.
- Make follow-up changes in that same workspace.
- If startup fails or stalls, inspect the failure reason and bounded workspace
  logs before retrying. Never repeat credential-like diagnostic content.
- If a repository secret is missing, prepare a one-time upload command.
  Never ask the user to paste the secret into chat or run the command.
- Send GitHub work for pull-request review only after an explicit request.

Source and product configuration

Descriptions, runtime, resources, setup, and agent notes

+

With ManageRepositories, the agent can update product and repository descriptions as well as a registered repository's preview command, port, verified language runtime, compute resource profile, setup instructions, and agent notes. Descriptions should be detailed and grounded in the source: include purpose, users, owned capabilities, relevant stack, and boundaries so Flex can discover the right source and choose the right preview product. Verified runtime aliases are auto, node, dotnet, python, php, and vibecore. Secret values are never accepted by these tools.

Configure Acme Dashboard for Flex:
- repository description: Customer-facing React dashboard for account setup,
  billing, and usage insights; backed by the dashboard API
- product description: Self-service account platform for operations teams,
  covering onboarding, billing administration, and usage review
- preview command: npm run dev -- --host 0.0.0.0
- preview port: 5173
- runtime profile: node
- setup instructions: npm ci
- agent notes: run focused UI tests before returning the preview

Secrets without chat

The agent prepares the command. You enter the value.

When a registered GitHub repository needs a missing environment variable, Flex returns a single-use terminal command that expires after ten minutes. The value streams directly to Flex over HTTPS with terminal echo disabled.

  • ✓The value is not sent through the model.
  • ✓The value does not appear in the command line or shell history.
  • ✓The upload token is stored hashed, expires in ten minutes, and works once.

Your terminal

Direct to Flex
$ # Paste the one-time command returned by Flex
Value for DATABASE_URL: ********
{"configured":true}

The command contains a short-lived upload capability, but never the secret value. Treat it as sensitive until it expires.

Current beta coverage

GitHub repositories and ready Hosted Apps can run the live development loop.

GitHub repository workspaces can create pull requests. Ready Hosted Apps use tenant-private Forgejo source, and Hosted App branches remain in that private source. Repository onboarding, tenant connections, Hosted App secrets, and data-source selection remain in the authenticated Flex UI.