Configure, publish, and debug your project's deployment. Use to set deployment settings, suggest publishing when the app is ready, and fetch production logs to debug runtime issues.
Configure deployment settings, publish your project, and debug deployment issues.
Use this skill when:
deployConfig().replitdeployConfig()This skill has additional reference documents for specific deployment scenarios. Read them as needed:
references/deployment-logs.md — How to fetch and analyze runtime deployment logs. Read this when the user's deployed app is misbehaving, the live site is down, or they want to check production logs.Configure how the project should be deployed to production.
Parameters:
deploymentTarget (str, required): "autoscale", "vm", "scheduled", or "static"run (list[str], optional): Production run command. First entry is binary/script, rest are argumentsbuild (list[str], optional): Build/compile command before deploymentpublicDir (str, required for "static"): Directory containing static filesReturns: Dict with success, message, and configuration details
Example:
// Configure a Python web app
const result = await deployConfig({
deploymentTarget: "autoscale",
run: ["gunicorn", "--bind=0.0.0.0:5000", "--reuse-port", "main:app"]
});
// Configure a static site
const result2 = await deployConfig({
deploymentTarget: "static",
build: ["npm", "run", "build"],
publicDir: "dist"
});
// Configure an always-running bot
const result3 = await deployConfig({
deploymentTarget: "vm",
run: ["python", "bot.py"]
});
Prompt the user to click the Publish button after the app is ready. Only works in the main repl context — in task-agent/subrepl sessions this callback returns success: false. If you are in a task agent, skip this call and instead remind the user to publish from the main version after merging.
Fetch and analyze deployment logs. See references/deployment-logs.md for full documentation.
Choose the appropriate deployment target based on your project type:
Use for stateless websites and APIs that don't need persistent server memory.
await deployConfig({
deploymentTarget: "autoscale",
run: ["gunicorn", "--bind=0.0.0.0:5000", "app:app"]
});
Use for applications that need persistent server-side state or long-running processes.
await deployConfig({
deploymentTarget: "vm",
run: ["python", "bot.py"]
});
Use for cron-like jobs that run on a schedule.
await deployConfig({
deploymentTarget: "scheduled",
run: ["python", "daily_report.py"]
});
Use for client-side websites with no backend server.
run command is ignored; must specify publicDirawait deployConfig({
deploymentTarget: "static",
build: ["npm", "run", "build"],
publicDir: "dist"
});
Use production-ready servers, not development servers:
# Python with Gunicorn
run=["gunicorn", "--bind=0.0.0.0:5000", "--reuse-port", "main:app"]
# Python with Streamlit
run=["streamlit", "run", "main.py"]
# Node.js
run=["node", "server.js"]
# Multiple processes with bash
run=["bash", "-c", "gunicorn --reuse-port -w 4 -b 0.0.0.0:8000 app:app & npm run dev"]
Only use build commands when compilation is needed:
# TypeScript/bundler
build=["npm", "run", "build"]
# Multiple build steps
build=["bash", "-c", "make assets && make compile"]
# Rust
build=["cargo", "build", "--release"]
.replit.app domain or custom domain if configured// 1. Configure deployment settings for a web app
await deployConfig({
deploymentTarget: "autoscale",
run: ["gunicorn", "--bind=0.0.0.0:5000", "app:app"]
});
// 2. After verifying the app works, suggest publishing to the user