{
  "manifest_version": "1.0.0",
  "template": {
    "id": "52606907-0dd1-4641-8cec-5b0e04d9d137",
    "slug": "mercury-agent-railway",
    "name": "Mercury Agent Railway - 1 Click deploy",
    "description": "Mercury is a persistent AI agent that runs 24/7.",
    "url": "https://railway.com/deploy/mercury-agent-railway",
    "upstream": {
      "repo_url": "https://github.com/4bade3/mercury-railway"
    }
  },
  "status": "unvalidated",
  "validated_at": null,
  "success_rate_30d": null,
  "services": [
    {
      "name": "mercury-railway",
      "source": {
        "repo": "https://github.com/4bade3/mercury-railway"
      },
      "needs_volume": true,
      "volume_mount_path": "/data",
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "MEMORY_DIR",
      "service": "mercury-railway",
      "description": "optional — path to memory storage",
      "secret": false,
      "strategy": "default",
      "default": "./memory"
    },
    {
      "key": "MERCURY_NAME",
      "service": "mercury-railway",
      "description": "display name for your agent",
      "secret": false,
      "strategy": "default",
      "default": "Mercury"
    },
    {
      "key": "MERCURY_OWNER",
      "service": "mercury-railway",
      "description": "your name — the agent knows who it works for",
      "secret": false,
      "strategy": "default",
      "default": "human"
    },
    {
      "key": "OPENAI_BASE_URL",
      "service": "mercury-railway",
      "description": "set to https://openrouter.ai/api/v1 for OpenRouter",
      "secret": false,
      "strategy": "default",
      "default": "https://api.openai.com/v1"
    },
    {
      "key": "DEFAULT_PROVIDER",
      "service": "mercury-railway",
      "description": "pick `anthropic`, `deepseek`, `openai`, or `grok`",
      "secret": false,
      "strategy": "default",
      "default": "openai"
    },
    {
      "key": "DAILY_TOKEN_BUDGET",
      "service": "mercury-railway",
      "description": "optional — daily token limit before auto-concise kicks in",
      "secret": true,
      "strategy": "default",
      "default": "500000"
    },
    {
      "key": "TELEGRAM_BOT_TOKEN",
      "service": "mercury-railway",
      "description": "get from https://t.me/BotFather — required for headless use",
      "secret": true,
      "strategy": "generate",
      "generate": "random_base64_32"
    },
    {
      "key": "MERCURY_AGENT_VERSION",
      "service": "mercury-railway",
      "description": "Pin to an npm version such as `0.5.2`, `0.5.4`, `latest`",
      "secret": false,
      "strategy": "default",
      "default": "latest"
    },
    {
      "key": "HEARTBEAT_INTERVAL_MINUTES",
      "service": "mercury-railway",
      "description": "optional — how often Mercury checks budget and tasks",
      "secret": false,
      "strategy": "default",
      "default": "60"
    },
    {
      "key": "TELEGRAM_BOOTSTRAP_ADMIN_ID",
      "service": "mercury-railway",
      "description": "Telegram User id to whitelist",
      "secret": false,
      "strategy": "ask_user"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "mercury-agent-railway"
      }
    },
    "cli": "railway deploy --template mercury-agent-railway",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "52606907-0dd1-4641-8cec-5b0e04d9d137",
            "serializedConfig": {
              "services": {
                "7204dca8-f4ec-4bbd-af03-1092b193ef80": {
                  "name": "mercury-railway",
                  "source": {
                    "repo": "4bade3/mercury-railway",
                    "branch": null,
                    "rootDirectory": null
                  },
                  "variables": {
                    "GROK_MODEL": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "MEMORY_DIR": {
                      "description": "optional — path to memory storage",
                      "defaultValue": "./memory"
                    },
                    "GITHUB_EMAIL": {
                      "isOptional": true,
                      "description": "optional — email for co-authored commits",
                      "defaultValue": ""
                    },
                    "GITHUB_TOKEN": {
                      "isOptional": true,
                      "description": "optional — fine-grained PAT with repo scope",
                      "defaultValue": ""
                    },
                    "GROK_API_KEY": {
                      "isOptional": true,
                      "description": "required if DEFAULT_PROVIDER=grok",
                      "defaultValue": ""
                    },
                    "MERCURY_NAME": {
                      "isOptional": true,
                      "description": "display name for your agent",
                      "defaultValue": "Mercury"
                    },
                    "OPENAI_MODEL": {
                      "isOptional": true,
                      "description": "optional. use any OpenRouter model string e.g. anthropic/claude-sonnet-4-5",
                      "defaultValue": ""
                    },
                    "GROK_BASE_URL": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "MERCURY_OWNER": {
                      "isOptional": true,
                      "description": "your name — the agent knows who it works for",
                      "defaultValue": "human"
                    },
                    "DEEPSEEK_MODEL": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "OPENAI_API_KEY": {
                      "isOptional": true,
                      "description": "required if DEFAULT_PROVIDER=openai. use sk-or-... for OpenRouter",
                      "defaultValue": ""
                    },
                    "ANTHROPIC_MODEL": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "GITHUB_USERNAME": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "OPENAI_BASE_URL": {
                      "isOptional": true,
                      "description": "set to https://openrouter.ai/api/v1 for OpenRouter",
                      "defaultValue": "https://api.openai.com/v1"
                    },
                    "DEEPSEEK_API_KEY": {
                      "isOptional": true,
                      "description": "required if DEFAULT_PROVIDER=deepseek",
                      "defaultValue": ""
                    },
                    "DEFAULT_PROVIDER": {
                      "isOptional": false,
                      "description": "pick `anthropic`, `deepseek`, `openai`, or `grok`",
                      "defaultValue": "openai"
                    },
                    "ANTHROPIC_API_KEY": {
                      "isOptional": true,
                      "description": "required if DEFAULT_PROVIDER=anthropic",
                      "defaultValue": ""
                    },
                    "DEEPSEEK_BASE_URL": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "DAILY_TOKEN_BUDGET": {
                      "description": "optional — daily token limit before auto-concise kicks in",
                      "defaultValue": "500000"
                    },
                    "OLLAMA_CLOUD_MODEL": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "TELEGRAM_BOT_TOKEN": {
                      "isOptional": false,
                      "description": "get from https://t.me/BotFather — required for headless use",
                      "defaultValue": "{{TELEGRAM_BOT_TOKEN}}"
                    },
                    "GITHUB_DEFAULT_REPO": {
                      "isOptional": true,
                      "description": "optional — default repo name",
                      "defaultValue": ""
                    },
                    "GITHUB_DEFAULT_OWNER": {
                      "isOptional": true,
                      "description": "optional — default repo owner",
                      "defaultValue": ""
                    },
                    "OLLAMA_CLOUD_API_KEY": {
                      "isOptional": true,
                      "description": "required if DEFAULT_PROVIDER=ollamaCloud",
                      "defaultValue": ""
                    },
                    "MERCURY_AGENT_VERSION": {
                      "isOptional": true,
                      "description": "Pin to an npm version such as `0.5.2`, `0.5.4`, `latest`",
                      "defaultValue": "latest"
                    },
                    "OLLAMA_CLOUD_BASE_URL": {
                      "isOptional": true,
                      "description": "optional",
                      "defaultValue": ""
                    },
                    "HEARTBEAT_INTERVAL_MINUTES": {
                      "description": "optional — how often Mercury checks budget and tasks",
                      "defaultValue": "60"
                    },
                    "TELEGRAM_BOOTSTRAP_ADMIN_ID": {
                      "isOptional": false,
                      "description": "Telegram User id to whitelist",
                      "defaultValue": "{{TELEGRAM_BOOTSTRAP_ADMIN_ID}}"
                    }
                  },
                  "volumeMounts": {
                    "7204dca8-f4ec-4bbd-af03-1092b193ef80": {
                      "mountPath": "/data"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 1,
    "needs_volume": true
  },
  "generated_at": "2026-09-22T04:14:41.730Z",
  "generator_version": "0.1.0"
}
