# Changelog Source: https://docs.monk.io/changelog-updates Latest updates and improvements to Monk ### Features * **MonkScript Entity & Module Definition Support in Analyzer**: The MonkScript analyzer now understands entity type and module definitions (defines: entity / defines: module), validating definition bodies and instances of locally defined entity types with helpful did-you-mean suggestions — eliminating false 'Unknown entity type' errors on entity packages. * **Devin Desktop Support**: The Monk extension can now be used inside Devin Desktop. ### Fixes * Fixed Monk CLI installation and updates failing on macOS with Homebrew 5.1+ due to the 'untrusted tap' error — the Monk tap is now trusted automatically before installing. * Fixed Azure resources (OS disk, network interface, public IP) leaking when a cloud node is deleted while the Monk daemon dies mid-operation — these resources are now removed together with the VM. ### Improvements * CI/CD setup now generates GitHub Actions workflows using Monk's published actions instead of copying build and deploy scripts into your repository, keeping your repo cleaner and ensuring you automatically receive workflow improvements ### Fixes * Fixed false "Unknown operator" warnings in MonkScript templates using recently added operators, including URL encoding/decoding (url-encode, url-decode), comparisons (gt?, gte?, lt?, lte?, equal?), hashing (sha256, sha512, sha1, md5, hmac-sha256), path helpers (self-path, full-self-path), and the error-tolerant default operator ### Features * **Shared GitHub Actions for Capsule Workflows**: Capsule CI/CD setup now generates a much leaner workflow that uses the official monk-io/monk-actions suite instead of copying \~1700 lines of shell scripts into your repository. Existing scripts/ directories from previous setups can be safely deleted. * **URL Encode/Decode Operators in MonkScript**: New url-encode, url-decode, url-path-encode and url-path-decode operators let templates percent-encode and decode URL query and path components. * **Namespace Resync Command**: New `monk system ns-resync` command re-broadcasts namespace entries to repair state desync between cluster peers. * **Per-Cluster Service Tokens for Cost Reporting**: Clusters now report costs using a dedicated scoped service token instead of the user's access token, with a new `monk system refresh-cluster-token` command to mint or refresh it. ### Improvements * Project analysis is faster — known irrelevant directories are skipped and YAML discovery is limited to a shallow depth * Template start output now shows progress during readiness checks and post-start hooks, so long-running starts are no longer silent * Smoother sign-in flow — the login page opens automatically after email verification * Clearer install and upgrade messages during onboarding ### Fixes * Fixed jobs from disconnected cluster peers being orphaned forever, which left workloads stuck in a "waiting" state; peers now drain their own jobs on disconnect and remaining peers clean up jobs of departed owners ### Features * **Local-only cluster**: Create a local-only cluster that can leverage cloud resources from your local machine without provisioning remote nodes. ### Improvements * Expandable install error details in the chat strip — multi-line errors from `monk.installRuntime` (e.g. outdated Xcode Command Line Tools) now show the full message instead of a single truncated line. * Onboarding now auto-advances after running remediation scripts even when terminal shell integration fails to attach, removing the need for a manual Retest click in many cases. * Faster `monk list` on large workspaces through reduced allocations on the hot path. ### Fixes * Fixed a race where a dependent job could fail to be found if its dependency completed before the consumer was registered. * Fixed remediation scripts that call `exit` (such as the macOS Xcode CLI Tools installer) being incorrectly reported as timed out or terminal-closed instead of completing successfully. ### Features * **CLI Authentication via Environment Variable**: Authenticate the Monk CLI non-interactively by setting the MONK\_ACCESS\_TOKEN environment variable, enabling use in CI/CD pipelines and automated workflows. * **Billing Alert Settings**: Configure billing alert thresholds directly from the extension settings to stay informed about usage and spending. * **Custom VPC and Subnet Configuration on Cluster Operations**: Specify network name, subnet name, subnet CIDR, and network CIDR when creating or growing clusters, giving you full control over the network topology of provisioned infrastructure. ### Improvements * Settings panel now supports resetting custom settings back to their defaults. * MANIFEST files are now reliably created at the workspace root rather than nested directories. * Cluster creation and growth tools more reliably handle optional parameters, reducing cases where empty values were misinterpreted as intentional input. * Improved version update flow and restart behavior for runnables during recovery. ### Fixes * Fixed CLI token not being refreshed before running shell commands, which could cause authentication failures. * Fixed orphaned blob mount temporary directories not being cleaned up. * Fixed duplicate blobs accumulating on single-node clusters. * Reduced flakiness in Azure credential validation. * Now requires Monk daemon v3.20.5 or newer to ensure compatibility with the latest fixes. ### Features * **Neon service credentials**: Add Neon as a supported service provider with API key credential handling, validation, and inline instructions. * **Custom VPC and subnet configuration for clusters**: Specify network name, subnet name, subnet CIDR, and network CIDR when creating AWS or Azure clusters from the confirmation form. * **Configurable services subnet**: Override Monk's default 10.0.0.0/16 service IP pool via a new --services-subnet daemon flag to avoid conflicts with overlapping customer networks. ### Improvements * Validate Azure disk size against the 30–4095 GB Standard\_LRS range during capsule setup so misconfigurations fail early with a clear error. * Updated Hetzner API integration to handle firewall limits more reliably. * Added a link to the partner dashboard on the website. ### Fixes * Fix MonkScript entity autocomplete failing silently on daemons that enforce authentication on all RPC calls. * Fix authentication failures on Windows when the Monk token lives in a WSL distro, or when the extension targets a different environment than the CLI. * Fix a stream form crash when cancelling after a response has already been sent. ### Features * **Cloud Credential Refresh for Capsules**: Capsule secret updates can now refresh cloud provider credentials in GitHub alongside workload secrets, with automatic provider detection. ### Improvements * Container image builds are now throttled based on available client RAM to prevent system overload during parallel builds * Capsule setup now fails early with specific missing-field messages when cloud credentials are incomplete, instead of pushing a broken workflow to GitHub * Stale forms from previous editor sessions are now properly marked to avoid confusion ### Fixes * Fixed capsule CI/CD provisioning failures on GCP and AWS caused by missing zone handling; disk type and disk size are now correctly forwarded per provider * Improved credential validation flow so missing provider secrets are caught and requested before deployment proceeds ### Features * **Hetzner Provider for Capsules**: Capsules can now be provisioned on Hetzner Cloud — the Hetzner API token is wired through to provisioning so cloud-mode setup completes successfully. * **Resource Quotas Configuration**: Configure max concurrency, CPU, and RAM quotas — quotas are now passed through across all supported operating systems. ### Improvements * Deployments skip the slow project rebuild step when a MANIFEST already exists, making redeploys significantly faster. * Faster credential handling via parallel secrets fetching, cache checks, and label deduplication. ### Fixes * Signed-out users with an outdated CLI can now complete CLI upgrades — auth prompts no longer block the installer/upgrade flow. * Fixed stuck loader after cancelling an event. * Fixed secrets propagation across workspaces and improved environment/project detection. * Improved reliability of the deploy templates check. ### Features * **Inline Task Details in Chat**: Click any task row in chat to expand a full timeline, artifacts, and logs view inline — no need to switch to the Task Board for routine inspection. * **Persistent Task History**: Inline task details now survive IDE restarts, conversation switches, and webview reloads, sharing the same history as the Task Board. * **Dedicated WSL Install Panel**: Windows users without WSL now see a dedicated install panel with a one-click button to open the Microsoft Store, replacing the previous dead-end error. ### Improvements * Task Board now reveals only on the first task failure per job instead of opening on every new job, reducing UI noise. * Chat spinner is automatically suppressed when inline task events are flowing, removing duplicated progress information. * Failed tasks auto-expand with a full error banner, and timeline count pills hint when detail is available. * Improved accessibility on task UI buttons (proper button semantics, aria-expanded, aria-label, keyboard handling). * GitHub repository URLs in Capsules setup now accept full URLs, SSH forms, trailing slashes, and query/fragment suffixes — pasted browser URLs normalize correctly. ### Fixes * Inline task groups are now correctly attributed to the conversation they originated from, preventing cross-conversation history corruption when switching chats during a job. * Switching between conversations no longer wipes inline subtask timelines, logs, and artifacts from the live store. * Workspace Analysis subtask timeline is no longer empty after IDE restart — fixed a race where reasoning events arrived before the task's running status. * Stacked loader after task completion has been resolved. * Sound effects in forms now have proper debouncing and cover additional forms. * Cluster no longer disappears on remote nodes due to a sync bug. * Fixed log-file accumulation caused by a snapshot compaction catch-22 in the runtime store. * Template namespace is now validated to prevent invalid configurations. * Pasting a GitHub URL with a token (userinfo) is rejected and tokens are no longer echoed into extension logs. * Repository values containing query strings, fragments, or stray .git suffixes are properly canonicalized before being persisted. ### Features * **More Approval Gates for Sensitive Operations**: Monk now prompts you before executing sensitive operations like deleting clusters, modifying infrastructure, or changing security settings. You can approve once, always allow, or cancel. Per-tool permissions are configurable in VS Code Settings. * **Hetzner Cloud Provider Support**: You can now deploy clusters on Hetzner Cloud. Full support for credentials, cluster creation, scaling, and region selection. * **Additional Build Options for Image Builds**: You can now pass additional build options when building container images, giving more control over the build process. ### Improvements * The delete cluster confirmation dialog now includes an "Always Allow" option consistent with the new approval system ### Improvements * MCP tool calls now reuse the active conversation instead of creating a new one each time, preserving context across agent interactions * Agent interactions from MCP-connected coding tools now include context about the calling agent for better responses * Template browsing and inspection is now faster, using direct API calls instead of CLI shell commands * Naming linter now understands template inheritance — no longer warns about variable names that come from base templates ### Fixes * Fixed a race condition where concurrent MCP calls could interfere with each other * Fixed template paths not resolving correctly when browsing templates from custom repositories * Fixed operations on runnables and entities failing when using custom template repositories * Fixed problems with connections to clusters on local networks ### Features * **Live Cost Estimation**: See estimated cloud infrastructure costs in real-time as you configure cluster creation, with hourly and monthly breakdowns including infrastructure fees * **Infrastructure Cost Visibility**: View running infrastructure costs per cluster in the clusters table, with usage tracking across your organization * **Shared Clusters**: Share clusters across multiple environments and capsules, enabling more efficient resource utilization * **Slack Integration for Cluster Operations**: Respond to cluster creation confirmations, deletion prompts, environment link changes, and credential requests directly from Slack — whichever channel you respond in first wins ### Improvements * GPU-related fields no longer appear in the form summary after unchecking the GPU option * MCP onboarding step now completes as soon as an agent connects, rather than waiting for the first tool call * Graceful upgrade flow when your Monk CLI is below the minimum required version — shows a targeted upgrade strip instead of the full install wizard * Homebrew and Xcode Command Line Tools are now auto-installed during macOS onboarding, with clear progress messages explaining each step * Cluster peer names now display properly in removal and shrink confirmations instead of truncated IDs * Daemon idle CPU usage reduced by over 50% through internal performance optimizations ### Fixes * Fixed the extension incorrectly showing an upgrade prompt instead of starting the daemon when it was simply stopped * Fixed cluster grow operations failing on shared clusters linked to multiple environments * Fixed Slack bridge disconnections crashing in-progress operations instead of falling back to the IDE prompt * Fixed install flow hanging with an empty terminal when shell integration encountered an error * Fixed the installer spawning multiple terminals during onboarding * Fixed Xcode CLT install exit code being masked by a cleanup command on macOS ### Features * **New Onboarding Flow**: Onboarding now happens inside the chat view with compact setup panels, making it faster to get started without switching between views. New users can now start chatting with Monk immediately before signing in or installing the runtime and continue after signing up. * **Slack Integration**: Connect Monk to your Slack workspace so you can respond to deployment questions, approve file changes, and fill out forms directly from Slack when you're away from the IDE. Setup is OAuth-based — just authorize in Slack and pick a channel. * **Slack Alerts for Watcher**: Watcher can now send alerts to Slack via an automated OAuth setup flow, replacing the previous manual webhook URL configuration. * **System Sleep Prevention**: Monk now prevents your machine from sleeping during long-running operations like deployments and cluster creation, ensuring they complete reliably even if you step away. * **Workload-Scoped Secrets and Repos**: Workloads can now be created and managed against non-local repos with scoped secret access, enabling more flexible multi-repo and multi-environment deployment setups. ### Improvements * On Windows, the UNC host restart requirement no longer blocks the entire onboarding flow — installation continues while a non-blocking reminder to restart is shown. * The Windows and Linux install flow now correctly picks up all required steps in a single run instead of requiring multiple attempts. * Cluster status updates are faster and more reliable, with reduced timeouts and fewer stale state issues after switching or deleting clusters. * Improved KMS validation error messages for AWS credentials. * The dashboard now shows a Slack card with connection status and quick actions to change channel or disconnect. * Better error messages when cluster dependencies fail to resolve with custom repository templates. ### Fixes * Fixed cluster disconnect, consensus recovery, and container cleanup issues that could leave clusters in a broken state. * Fixed missing secret scope for file-based and mounted secrets in deployments. * Fixed Azure container fallback behavior. * Replaced deprecated apt-key with modern signed-by approach for Linux and WSL installations, eliminating deprecation warnings on newer Ubuntu/Debian. ### Improvements * Clearer error messages during authentication — timeout and state mismatch errors now surface specific, actionable descriptions instead of generic failures * Transient setup and self-test failures are now automatically retried with backoff, reducing flaky first-launch errors ### Fixes * Fixed node cleanup and load balancer deletion when destroying a cluster * Fixed a bug where multiple IDE windows could interfere with each other's session state ### Features * **Workspace, Project, and Capsule Scheduling Tools**: New MCP tools for managing workspaces, projects, and organizations, plus capsule scheduling configuration directly from your editor. ### Improvements * Default tool timeout increased to 30 minutes so long-running MCP tools are no longer prematurely killed. * Upgraded default AI model to GPT-5.4 for improved agent responses. ### Fixes * File picker now renders correctly for credentials that require both a file upload and form fields. * Environment picker correctly handles personal environments and no longer hides default-project environments. * Capsule user sync now preserves cluster owners instead of accidentally removing them. * Cluster teardown is more robust and no longer fails on edge cases during exit. * Fixed a race condition that could occur when switching between clusters or contexts. ### Features * **Capsule Scheduling Settings**: Configure scheduling options for your capsules directly from the extension, giving you finer control over when and how workloads run. * **Task Progress Summaries in Chat**: See live task and job progress inline in the chat view — including job state, elapsed time, and individual task status — without needing to switch to the task board. ### Improvements * Chat history is now more reliable: deleted conversations no longer reappear after reload, and concurrent updates no longer cause data races. * The stop button in the chat input is now red to clearly indicate it will cancel the current operation. * Status strip tooltips are more stable and no longer cause render crashes on hover. * Archived job snapshots are preserved so you can review historical task progress in chat after a job completes. * Task elapsed time displays are now accurate for completed and archived jobs. ### Fixes * Fixed a memory leak in the task scheduler that could cause increasing CPU and memory usage during long-running jobs. * Fixed workload group counts incorrectly inflating the status strip numbers. * Fixed subtitle in task groups sometimes appearing stale or hidden when content changed. ### Features * **Capsule Service Token Security Redesign**: Capsule CI/CD pipelines now use a single project-scoped master token that mints short-lived JIT tokens at runtime, replacing the previous two-token authentication model. This improves security by limiting credential scope and lifetime for provision, deploy, and cleanup operations. * **Capsule UI**: New user interface for managing Capsules directly from the extension, providing visibility and control over capsule lifecycle and configuration. * **Workspace MCP Auto-Discovery**: MCP server configurations are now automatically generated and cleaned up for popular coding agents (Cursor, Claude, Gemini, Codex, CLI/IDE) so they can discover and connect to the Monk MCP server with minimal manual setup. * **Update Capsule Secrets Tool**: New agent tool for updating workload secrets on existing Capsules in two modes: global (pushes to GitHub environment and patches the workflow) or local (injects directly into the connected capsule via CLI). ### Improvements * GitHub repository name is now auto-detected and pre-filled when requesting GitHub credentials for Capsule setup * Capsule CI/CD scripts poll for daemon readiness instead of using a fixed 20-second sleep, improving reliability and reducing setup time * CI/CD scripts are now universal and provider-agnostic, supporting all four cloud providers at runtime via environment variables instead of compile-time interpolation * Non-secret Capsule parameters (service URLs, org/project slugs, cloud settings) are stored as GitHub environment variables instead of secrets, improving auditability * Custom disk sizes configured in the extension are now correctly passed through to cluster provisioning * Ingress controllers and container registries are now treated as ambient platform services, preventing the agent from unnecessarily planning or deploying them during app deployments * Role operations in chat now show an approval form for confirmation before executing ### Fixes * Fixed JIT token minting failures being silently swallowed in CI/CD fetch-metadata step due to set -e behavior * Fixed JIT token error messages being captured into variables instead of appearing in CI logs by redirecting to stderr * Fixed connection leak in local capsule secret updates where MonkClient connections were not closed on error * Fixed redundant GitHub API calls when creating multiple environment variables by resolving repository ID once * Fixed MCP server rejecting undisclosed tool calls and properly cleaning up multi-key config sections * Fixed MCP discovery continuing gracefully when legacy config cleanup fails due to permissions or unreadable files * Fixed cluster user sync to trigger on environment link/unlink and when applying RBAC roles * Fixed ingress collision validation to prevent route conflicts during deployments ### Features * **Monk Capsules Setup Tool**: Added guided setup for per-branch CI/CD environments, including workflow/script generation and scoped secret provisioning * **Local MCP Server**: Your coding agent now can talk to monk through a built-in Streamable HTTP JSON-RPC server with progress streaming and multi-window support * **RBAC UX Expansion**: Added role/permission-focused forms and updated UI behavior to reflect scoped permissions * **Monk Networking Additions**: Added Azure DNS forwarding support for private-link/database zones and custom public IP/domain handling ### Improvements * Improved project diagnostics and project-files UI with richer file-state tooltips, per-file problem counts, and quick open/delete actions * Simplified agent architecture by removing dynamic agents and routing labels, reducing runtime complexity and improving stability * Improved tooltip behavior and placement to reduce flicker/clipping and improve keyboard accessibility ### Fixes * Fixed status false-positives by removing group-level ready/alive health signals and avoiding duplicate Docker path checks ### Features * **Projects Support**: Added project-level workflows ### Improvements * Better WSL onboarding flow with automatic install in setup wizard and guided install option in dashboard mode ### Fixes * Fixed task board card overflow for long pre-formatted output so horizontal scrolling behaves correctly ### Features * **Structured GPU Cluster Configuration**: Cluster create/grow now supports explicit GPU enablement, count, and instance type with backend-validated options * **RBAC Foundations**: Introduced role-based access control support across extension and backend flows * **Scoped Rules & Instructions**: Added org- and environment-scoped custom instructions for more targeted agent behavior ### Improvements * Guided cluster creation now provides dynamic region/zone/instance updates, better defaults, and stronger inline validation/advisories * Clearer "waiting for input" indication in chat and task views when tasks pause for user action * Form handling is more resilient with serialized question handlers, debounced field updates, and safer dependency refresh logic * Task lifecycle handling tightened to track cancelled/waiting flows more accurately across different actions ### Fixes * Fixed cancelled tasks losing job association or showing stale/duplicate entries in the task board * Fixed cancellation/error paths that could leave tasks stuck in `executing` * Fixed environment tag preservation during interactive cluster parameter changes * Monk runtime fixes for broken-cluster peer status updates and region-based pricing lookup ### Features * **Quick Analysis Mode**: Lightweight analysis path wired end-to-end (Frontman tool + orchestrator support) * **Guided Region/Zone Selection**: Cluster creation form now updates and validates region/zone dynamically ### Improvements * Unified "waiting for input" UX across chat, task board, and interactive prompts during deploy/watcher flows * More robust form interactions * Clearer explanations of actions from the agent and improved chat rendering/loading indicators * Monk runtime reliability: better handling of broken cluster peer status and registry pull fallback ### Fixes * Prevent tasks from getting stuck waiting when form rendering fails or interrupts ### Improvements * Code Editor agent now scans Elixir source files and respects `.dockerignore` ### Fixes * More robust directory traversal and error handling when listing workspace files * Made task board horizontal scrollbar visible at all times * Fixed occasional duplicate entries in workload status output ### Improvements * Safer cluster creation and deploy flows with clearer prompts, defaults, and progress reporting * Stronger destructive delete confirmations and clearer conversation UI for high-risk actions * Credential prompts now link provider docs inline with clearer instructions * Watcher now ignores local peer updates to prevent misleading assessments * Improved Watcher setup form ### Fixes * Prevents secret-injection failures from emitting misleading messages * Fixes custom-select behavior and delete confirmation state in the UI * Fixes to the code editor approval flow ### Fixes * Stabilized manifest blob cleanup with retries and better logging * Skipped deletes for missing blobs to reduce noisy failures * Improved installation guidance for macOS by detecting missing Xcode Command Line Tools ### Features * Made bug reporting more discoverable in the welcome UI and setup wizard ### Improvements * Ignored readiness reporting for group workloads to avoid misleading assessments ### Features * **Audit Trail**: Added audit implementation with a refreshed audit view * **Fix with Monk**: Deep links from Watcher alerts open the IDE, fetch context, and start fixing the issue ### Fixes * Fixed removal handling for environment-scoped secrets ### Improvements * Enhanced workload status UI with richer health metadata, grouping, and navigation to definitions * Hardended cluster provisioning cleanup and improved cluster switch error guidance ### Features * **Team Secret Sharing**: Teams can now share secrets across members ### Improvements * Added crashloop detection and restart metadata to deployment assessments for better stability diagnostics ### Features * **Automated Deployment Assessment**: Post-deploy health checks now summarize workload status and logs ### Features * **Integration Library**: Monk can now browse, suggest and install available integrations on demand ### Improvements * Enhanced internal probe operators for better diagnostics * Secrets handler enabled for peer-to-peer secret sharing ### Improvements * PowerShell is now explicitly used for Windows terminal sessions for better compatibility * Enhanced ArrowScript syntax clarity and documentation * Improved crashloop detection in running workloads * Added secrets scope parameter for finer-grained access control ### Fixes * Fixed task board showing duplicate entries * Fixed task board persistence issues across sessions * Fixed URL concatenation issues in certain scenarios ### Improvements * Better error messages when building container images * Fast-fail improvements for quicker error detection * Reduced memory allocation in critical paths ### Fixes * Fixed LLM error event handling in agents ### Features * **Configurable Editor Approval**: New settings to control when file approvals are required, with "don't ask again" option per session ### Improvements * Increased job timeout to 1 hour for long-running operations ### Fixes * Fixed "don't ask again" checkbox updating wrong setting * Fixed Protocol response type handling for method names containing "request" * Fixed code editor deny patterns preventing legitimate edits ### Improvements * Refactored diff viewer component for improved styling consistency ### Fixes * Fixed approval flow hanging in certain scenarios ### Improvements * Faster agent decision-making with optimized reasoning settings * Increased tasks concurrency for better parallelism in job execution * Shared cache for Monk metadata improves diagnostics performance * Better error tracking and for edit operations ### Fixes * Fixed code editor incorrectly denying legitimate source files (.ts, .go, etc.) * Fixed ArrowScript `replace` operator reporting false stack underflow errors * Fixed documents being skipped during rapid file opens * Fixed memory leak during re-analysis * Fixed race condition in timer scheduling ### Major Features * **File Approval Flow**: Agents now request explicit review and approval before modifying source files, with an interactive diff viewer in chat * **Native Diff Editor**: Open full diff comparisons in VS Code's native diff editor directly from the approval UI ### Improvements * Improved reliability of interactive prompts and form handling * Better URI handling for diff content with special characters * Updated minimum Monk requirement to 3.18.7 ### Improvements * Relaxed member permissions for cluster synchronization ### Fixes * Fixed duplicate diagnostics appearing in git diff views * Fixed image validation when using `image` + `image-tag` format * Fixed stale warnings persisting after template updates * Fixed image tag matching to require exact versions when explicitly specified * Fixed search result counts for workspace files * Cluster and user management fixes ### Improvements * Faster and more reliable diagnostics after edits * Added validation for environment variables and entrypoints ### Improvements * Detection of circular service dependencies (wait-for cycles) * Service health checks now run on the correct cluster node * Agent provides guidance for accessing services via ingress routes * Improved ArrowScript error messages * Better validation suggestions for HTTP services and ingress routes ### Major Features * **Source Code Editor Agent *Beta***: New agent for targeted source-code fixes (env vars, ports, connection strings, Dockerfile and build scripts) to help fix deployment-related issues * **Multiple Environments**: Support for multiple deployment environments, allowing separate staging/production configurations per cluster ### Fixes * Fixed file existence handling on revert operations * Fixed nested MANIFEST files being handled by wrong editor agent ### Improvements * **Clearer task progress & diagnostics**: More detailed timeline events and better context around what the agent is doing (and why), making it easier to follow long-running jobs. * **Smoother, safer credential setup**: Credential requests are now more structured and validated, reducing redundant prompts and helping prevent accidental overwrites during updates. * **More polished prompts & forms**: Refreshed UI for confirmations and credential entry with clearer styling, improved summaries, and accessibility/interaction tweaks. * **More reliable builds**: Next‑gen container builder improves build/run flow, observability, and cleanup so failures are easier to understand and recover from. * **More consistent agent reporting**: Backend emits more structured artifacts and clearer diagnostics, including improved path handling and validation messages. ### Improvements * Cluster-switch tools now available to the agent for switching between clusters ### Fixes * Fixed credential input parsing: prevents empty values from overwriting existing OAuth or file-based credentials ### Major Features * **Production Watcher**: Watcher setup tool is now out of Beta and production-ready with monitoring for CPU, memory, disk usage, and service health with Slack integration ### Improvements * Smarter secret coverage detection: required secrets are now marked as stored when covered by provider credentials * Better status display showing stored provider credentials * "Generate" button for secure value generation in credential forms * Linter: Fixed stale symbol-kind issues during inheritance reanalysis * Linter: Prefer `image: "name:tag"` format over deprecated `image-tag` property (shown as hints) * Linter: Well-known public Docker Hub images (nginx, postgres, redis, mongo, etc.) no longer require declaration in MANIFEST * Linter: Global variable support with deprecation warnings to guide users toward replacements ### Improvements * Internal refactoring for improved manifest parsing and Dockerfile path handling ### Major Features * **Go to Definition**: Navigate directly to template definitions, services, containers, and variables across your project * **Smart Code Navigation**: Jump to embedded code blocks and external dependencies from template files ### Improvements * Enhanced template validation with better detection of unused variables * Smarter schema validation with suggestions for typos and allowed values * Improved secret detection in configuration files * Warnings when connections are missing a service specifier * Better syntax highlighting for ArrowScript ### Fixes * Fixed file searching accuracy for paths with special characters * Fixed Dockerfile path resolution in IMAGE statements * Fixed file path handling across different operating systems ### Improvements * Enhanced credential form with better support for multiple providers * Improved validation feedback with gentler hints for non-critical issues ### Improvements * **Enhanced Credentials Form**: Improved credential input with sectioned forms for multiple providers * Registry credentials now use cluster secrets for improved security * Enhanced template validation with smarter name suggestions * Better variable type handling and diagnostics in template files * Better code extraction accuracy for health checks and replicas configuration ### Fixes * Fixed position mapping for indented code blocks in template diagnostics ### Improvements * Improved search functionality with result limits for better performance * Enhanced task management with new "interrupted" state for better visibility after connection issues * Improved job state recovery after IDE restarts * Better ArrowScript diagnostics with clearer error messages ### Features * **Secure Credentials Form**: New dedicated form for entering sensitive credentials securely instead of pasting them in chat ### Improvements * Better documentation and guidelines for MANIFEST files and secret handling ### Improvements * Switched to new LLM for speed, accuracy and more succint answers * Improved action links in chat for interactive buttons and file references * Better status strip displaying workload statuses with improved tooltips * Optimized status comparison logic ### Features * **HTTP Probe**: New probe to test containerized web applications * **Port Service**: Find available ports on the client machine for local development * Force reanalyze option in build tool ### Improvements * Improved chat context with current status awareness * Better job completion warnings when not all tasks were completed * Updated agent instructions for improved guidance ### Improvements * Enhanced Monk UI with improved button contrast for better accessibility * Dynamic sample prompts in welcome screen and chat interface * Improved agent status reporting and context awareness * Better markdown rendering in chat interface ### Fixes * Fixed authentication and onboarding flow to prevent state mismatches * Fixed authentication callback handling after user cancellation * Fixed email verification flag sent to webview immediately after verification * Fixed welcome screen login state to use proper auth status * Fixed memory leak by clearing timeout in ReadyCard component ### Features * **Interactive Forms**: New form system for structured user input within chat interface * Forms support for collecting configuration data and credentials * Question prompts on individual form sections for better guidance ### Improvements * Better fallback mechanisms for environments without full chat support * Force package manager re-test after distro selection on Linux ### Fixes * Fixed connection race conditions * Fixed connect handshake timeout issues * Removed max reconnect attempts, capped backoff at 6 seconds for better stability * Fixed status color implementation ### Features * **Organization Management**: New organization view with cluster synchronization * **Cluster Management**: Enhanced cluster and organization management tools * Configuration variables cleanup option * Wizard waiting state for better user feedback ### Improvements * Enhanced welcome screen UI and UX * Improved status aggregator and chat webview integration * Better code readability and structure in webview components * Updated billing to use unified website URL * Improved WSL distro handling ### Fixes * Fixed subscription token calculation in MetricsRow component * Fixed missing button for organization management * Fixed borders and refresh buttons in management interfaces * Fixed double cancel buttons in cluster modals * Added DNF support to Linux remediation script ### Improvements * Automatic self-test after successful authentication for better user experience * Ensures application state is up-to-date when user starts working ### Improvements * Enhanced authentication user experience * Better status change signal emissions * Enhanced team management with refresh status on accept and refresh button * Improved plan label display with uppercase and extra token information * Added tag parameter to watcher tool ### Fixes * Fixed monkd TCP port (changed to 2137) * Fixed shell execution environment mutation bug * Fixed Unix socket permission issues by switching to TCP socket * Added systemd override check and migration support ### Features * **Watcher Setup Tool**: New tool for setting up monitoring with Slack integration * **Local Deployment**: Added 'local' deployment mode for running projects on local machines * **Organization View**: Initial organization and cluster synchronization support ### Improvements * Skip managed service configuration for local development scenarios * Better credential flow for Slack webhooks * Enhanced watcher template embedding and reloading ### Fixes * Fixed Windows selftest retest logic to prevent script sequence issues when shell integration is unavailable ### Fixes * Fixed release pipeline ### Improvements * Liveness/readiness: automatic checks and readiness status/errors * Performance: stats caching for container CPU metrics * TLS & ingress: * TLS configuration support in ingress and config files * Support for additional node TLS certificates in ingress * KMS: * Improved key lifecycle and permission checks * Switched Azure AD Graph to Microsoft Graph for Azure KMS ### Fixes * Fixed repository connection issues on macOS * Fixed error loops and wait-for-vault provisioning before key creation * Fixed panic in user list race condition * Fixed handling to ignore empty env values in variables ### Features * Added Terms of Service, Privacy Policy, and License links to the onboarding wizard ### Fixes * Fixed login flow ### Features * Experimental billing support for organizations ### Fixes * General stability and bug fixes ### Improvements * Automated liveness/readiness checks for services * Stats caching for container CPU metrics * Ingress TLS certificate configuration enhancements ### Improvements * Performance: exclude build artifacts and temporary directories from indexing for faster, cleaner search * Consistency: normalized ignored path handling across workspaces * Billing & subscriptions: * Hide trial when user already has an active subscription ### Improvements * Subscription & billing polish: * Better subscription status handling and trial visibility * Fixed links and labels for external billing pages ### Improvements * Updated README with comprehensive feature descriptions and clearer value proposition * Better documentation of Monk's autonomous capabilities and integrations ### UI Improvements * Made status bar icons larger for better visibility * Fixed cluster switching to prevent accidental resource removal ### Major Features * **Cluster Switching**: You can now easily switch between multiple clusters using the status bar or command palette. Your cluster credentials and selections are saved across workspaces. ### Improvements * Improved billing transparency with centralized usage tracking * Added real-time status updates in the chat interface * Better status reporting showing current cluster, workloads, and secrets ### Improvements * Log retrieval now has better defaults and won't hang indefinitely * Fixed chat reloading - no more duplicate messages after refreshing with Ctrl/Cmd+R * Chat conversations now restore properly when reopening * Fixed issue where new chat messages could appear in the wrong conversation ### Major Features * **Unread Notifications**: Background conversations now show a green dot when complete, so you know when responses are ready * **Multiple Concurrent Chats**: You can now run multiple conversations simultaneously without interference ### Improvements * Better handling of streaming messages across multiple conversations * Improved chat history management ### Major Features * **GPT-5 Integration**: Monk now uses Azure GPT-5 models for better performance and accuracy * **AWS SQS Support**: You can now work with AWS SQS queues * **Custom Domains**: Set custom domains for Netlify and Vercel deployments * **Enhanced Documentation Access**: Monk can now search and retrieve documentation to better answer your questions * **Improved Template Editing**: Better YAML editing with automatic validation and error fixing * **Better Project Analysis**: Improved understanding of Docker images, Dockerfiles, and build contexts in your project ### Features * New command to copy registry credentials from workspace to global scope * Better credential management with workspace and global scopes * Registry credentials created during cluster setup are now saved globally for reuse ### Improvements * Fixed credential deletion to work correctly across different scopes * Better validation of configuration files with helpful suggestions * Improved workspace analysis for more reliable builds ### New Agent Capabilities * Monk can create or adopt SQS queues (standard or FIFO), set encryption, redrive and dead-letter policies, and return queue URLs and ARNs * Monk can send and receive SQS messages, purge queues, and report queue statistics * Monk can edit Monk YAML templates and iterate until all diagnostics are resolved to zero * Monk can answer documentation questions about Monk concepts, CLI, and templates with enhanced semantic search ### Features * **Social Login**: Sign in quickly with GitHub or Google * **Improved Onboarding**: Better first-run experience with provider-first authentication * Simplified authentication - you can now sign up directly via email * More streamlined login/signup process ### Improvements * Fixed issues with task history loading * Better handling of authentication errors with clearer guidance ### Features * **Task Board Access**: New button in chat to quickly open the Task Board * **Task History Persistence**: Task board now remembers your jobs and tasks across sessions * **Archive Management**: Clear archived tasks with a new clear button ### Improvements * Better task timing displays showing local timestamps * Task board continues collecting events even when closed * Improved handling of workload deletion with options for volumes, backups, and images * Fixed task board data corruption issues ### Improvements * More readable job names in the Task Board * Task board now groups archived jobs for better organization * Fixed issues with task board timing and display ### Major Features * **Managed Services**: You can now use managed databases from DigitalOcean and S3/Spaces storage for Redis, MongoDB, Postgres, and MinIO ### Improvements * Better session management - active sessions won't timeout while you're working * Fixed task status display to correctly show errors instead of false successes * Improved GPU support for DigitalOcean deployments ### New Agent Capabilities * Monk can create DigitalOcean managed database clusters (Postgres/MySQL/Redis/MongoDB/Kafka/OpenSearch), resize clusters, list databases, create and delete databases, and provide connection strings and credentials * Monk can create DigitalOcean Spaces (S3-compatible), configure versioning, CORS, lifecycle, and tagging, and provide regional endpoints and URLs * Monk can create and delete DigitalOcean Spaces access keys and store them in secrets for programmatic access * Monk can configure existing components to use managed services instead of self-hosted alternatives ### Major Improvements * **Automatic Multi-Architecture Deployment**: Monk now automatically detects your cluster's architecture and builds images accordingly - no manual configuration needed! * **Better Build Performance**: Fixed unnecessary cross-compilation when deploying from Apple Silicon to Intel clusters * **Smarter Deployments**: Only builds for the architectures actually used in your cluster ### New Agent Capabilities * Monk can detect cluster peer platforms and select native, cross-platform, or multi-architecture builds autonomously * Monk can build and push images to the configured registry with platform-aware tagging before deployment ### Improvements * Improved deployment efficiency - fewer redundant operations * Better error handling when building multi-architecture images * Significantly faster builds when your local architecture matches your cluster * Support for insecure (non-TLS) container registries during deployment * Better compatibility with third-party container registries * Improved registry reachability detection using standard ports ### Major Features * **New Onboarding Wizard**: First-time users get a guided setup experience * **Subscription Status**: Your subscription status is now displayed on the welcome screen * **Automatic Registry Setup**: No more manual registry credential prompts - Monk sets this up automatically * **Smart Deployment Checks**: Monk now ensures you have remote cluster nodes before allowing cluster deployments ### Improvements * Registry setup happens automatically after cluster growth * Better error messages and guidance throughout * Improved update notifications * Better handling of AWS Lambda and DynamoDB configurations ### Major Features * **AWS Lambda & DynamoDB Support**: Monk can now deploy AWS Lambda functions and configure DynamoDB tables * **Improved Budget Management**: Chat continuation now costs 0.25 tokens with clearer prompts ### Features * New commands to update and manage registry addresses * Command to debug registry credentials ### Improvements * Token balance updates automatically after charges * Better handling of budget limits with clearer messaging * Fixed chat interface staying disabled after email verification * Improved email verification error messages with retry options * Better registry reliability with automatic reachability checks * Improved SSL compatibility for registry access * Fixed budget checking to prevent prompts when you have no tokens * Better error handling when chat sessions exceed budget * Fixed issue where chat could hang when budget limits were reached ### New Agent Capabilities * Monk can detect AWS Lambda handlers and model them as function components with an AWS Lambda deployment target * Monk can enrich AWS DynamoDB components with schema details inferred from code and infrastructure-as-code files * Monk can create DynamoDB tables with key schemas, GSIs/LSIs, billing modes, PITR, SSE, and table classes, and return table ARNs and names * Monk can put, get, delete, and scan items in DynamoDB tables * Monk can create and update Lambda functions from ZIPs or ECR images, configure environment variables, VPC networking, layers, logging, and X-Ray, and return function ARNs * Monk can invoke Lambda functions and update function code and configuration * Monk can create IAM roles with trust policies, attach and detach managed policies, and expose role ARNs for other services * Monk can create IAM policies from JSON documents and manage permissions for Lambda functions ### Major Features * **CI/CD Automation**: New tool generates complete CI/CD configurations for GitHub Actions and CircleCI with automatic secrets management * **Vercel Support**: You can now authenticate with Vercel and deploy to their platform * **Hosting Platform Selection**: Monk helps you choose and configure Netlify or Vercel for your frontend applications * **Smart Conversation Management**: Long conversations are now automatically summarized to keep Monk's responses relevant and efficient * **Agent Refresh**: Monk automatically refreshes its understanding based on conversation length and activity ### Improvements * Monk now validates SSL certificates and manages secrets automatically for CI/CD pipelines * Build tool skips reporting non-critical environment issues * Better analytics tracking * Fixed chat spinner behavior - it now shows throughout the entire request * Better visual feedback when Monk asks questions * Ask prompts show immediate confirmation * Improved connection reliability and session management * Fixed task board event handling issues * Better connection handling after disconnections * More reliable task display * Better handling of configuration validation with helpful hints * Improved secret creation with better validation ### New Agent Capabilities * Monk can generate GitHub Actions workflows that build images and deploy using the MANIFEST * Monk can autonomously detect the repository and trigger branches for the CI/CD pipeline * Monk can create a short-lived Monk service token and inject it into CI/CD secrets securely * Monk can inject container registry address, username, and password into CI/CD secrets * Monk can detect or create a GitHub environment and place secrets there when appropriate * Monk can create or adopt Vercel projects, configure frameworks, Git repositories, build/install/dev commands, root directories, and custom domains * Monk can add and remove Vercel project domains and fetch production URLs * Monk can run Vercel production deployments from any directory using a managed builder image and a token from Monk secrets * Monk can guide hosting decisions between Netlify and Vercel and configure deployments with correct install, build, and output settings * Monk can verify Netlify and Vercel builds and provide concise, actionable guidance from build logs ### Major Features * **Bug Reporting**: New integrated bug reporting system - describe issues right in the chat and optionally include logs, templates, and workspace details ### Improvements * Fixed issues with Monk expert agent reliability * Better error messages and clearer guidance ### Improvements * Better version checking across all platforms (Linux, macOS, Windows) * Welcome screen now properly waits for setup to complete * Workload logs stay open even when containers restart ### Major Features * **Full Chat Interface**: New dedicated chat panel with message streaming, conversation history, and real-time updates * **Interactive Questions**: When Monk asks questions, it now focuses the chat automatically so you don't miss them * **Build Summaries**: Collapsible build summaries show you what happened during builds * **Cross-Interface Sync**: Answer questions in either chat or task view, and both stay in sync ### UI Improvements * Better text wrapping in chat and task views * Improved progress indicators with checkmarks * Better styling and visual consistency ### Improvements * Simplified budget continuation interface with just Yes/No buttons * Budget questions won't repeatedly prompt after you decline * Fixed memory leaks in chat handling * Fixed compatibility with Netlify and Windsurf ### Improvements * Fixed authentication callbacks * Better backup scheduling support * Improved Netlify authentication flow ### Major Update * Published to Open VSX Registry for wider IDE compatibility * Removed preview flag - Monk is production ready! ### Major Features * **Ask Tool with Suggested Answers**: Monk can now provide suggested answers when asking questions * **Better Error Recovery**: Improved handling of network failures with automatic retry and reconnection ### Improvements * Fixed empty message handling * More resilient connection to backend ### Major Features * **Template Editor**: Monk can now help you fix template errors and issues * **Task Timeline**: New timeline view in task cards showing agent reasoning and decision-making process ### Improvements * Better error messages with more context and helpful hints * Improved platform compatibility ### New Agent Capabilities * Monk can delegate template editing to a specialized editor agent and return a concise summary of fixes * Monk can edit Monk YAML templates and iterate until all diagnostics are resolved to zero (enhanced with diff preview) ### Major Features * **YAML Language Support**: Full YAML editing support with syntax highlighting and validation * **New Welcome Screen**: Modern React-based welcome screen with interactive setup checklist * **Manifest Language Support**: Editor support for MANIFEST files with DIRS directive for better project organization ### Improvements * Monk now provides diagnostics and auto-completion for manifest files * Better visual feedback during setup process * Improved diagnostic accuracy ### Improvements * Improved welcome screen with loading indicators * Better layout and overflow handling * Retry buttons for failed setup steps ### Improvements * Monk can now set up Auth0 authentication for your applications * Welcome screen now allows continuing setup without closing * Better Auth0 domain handling ### New Agent Capabilities * Monk can extract or create Auth0 applications and provide client IDs and secrets * Monk can configure OAuth flows and return authorization and token endpoints * Monk can determine the application domain provider (Netlify site or container service) for Auth0 callback URLs * Monk can configure social login providers and return provider credentials ### Improvements * Better Windows compatibility with platform-specific scripts * Improved "Retest" functionality in welcome screen ### Major Features * **Enhanced Monk Tools**: New tools for calculating costs, growing clusters, pricing, and moving workloads * Support for .gitignore-style blob exclusion patterns ### Improvements * Better Java handling * Improved Go project support * More reliable Monk agent responses ### New Agent Capabilities * Monk can estimate costs for deployments and infrastructure choices * Monk can scale infrastructure and workloads dynamically to meet demand * Monk can move workloads between cluster tags or nodes to rebalance placement ### Improvements * Better server URL configuration * Improved user preferences and tool descriptions * Updated to GPT-4.1 for better performance ### Features * **Delete and Unload Tools**: Monk can now help you delete and unload workloads ### Improvements * Better error handling when operations fail * More reliable registry credential handling * Fixed Vercel integration * Better error notifications * Better Windows compatibility * Fixed various connection issues * Better validation of build configurations * Connection reliability fixes ### New Agent Capabilities * Monk can stop workloads gracefully to free resources without unloading templates * Monk can delete workloads and remove all runtime resources when cleanup is required * Monk can unload workloads to remove template definitions from the system ### Major Features * **Subscription Support**: Full subscription and trial system implementation * **Removed Waitlist**: Monk is now available for general use * **Production Servers**: Extension now connects to production infrastructure by default ### Improvements * Better credential management * Improved connection handling ### Improvements * Better template validation and cleanup ### Features * Monk can now read and understand your existing templates better ### Improvements * Fixed terminal tools for non-running containers * Better Netlify deployment handling and configuration * Cancel button for authentication flows * Improved Vercel support * Enhanced authentication handling * Better image registry handling * Fixed extension activation when no workspace is open * Fixed startup stability issues * Better Netlify site naming ### Major Features * **Netlify Deployments**: Full support for deploying frontend applications to Netlify * **Credential Management**: New tool to manage and delete credentials * **Domain Generation**: Automatic domain and SSL certificate generation when growing clusters ### New Agent Capabilities * Monk can create or adopt Netlify sites, configure custom domains and aliases, enable password protection and force SSL, and return site/admin URLs * Monk can list, create, get, and restore Netlify deploys for a site * Monk can run Netlify site deployments from any directory using a managed builder image and a token from Monk secrets * Monk can configure SPA rewrites for single-page applications on Netlify when frameworks do not handle routing * Monk can check whether required credentials are present for any provider or service * Monk can request cloud or service credentials from the user and store them securely * Monk can delete stored credentials on request to revoke access ### Major Features * **Cross-Platform Support**: Full Windows support with automated setup checklist * **Welcome Page**: New welcome page for macOS with automated remediation * **Blob Storage**: Support for distributed blob storage across cluster nodes * Monk is now aware when you're not in a workspace ### Features * Progress updates during deployments * Automatic registry setup with retry support ### Improvements * Better event-driven status updates * Fixed icon bundling * Better ARM64 Mac support * Improved deployment reliability * Better image rebuilding before deployment * Enhanced credential management * Better manifest format for Docker images * Improved deployment process * Fixed credential handling * Better service provider recommendations * Improved image registry handling * Welcome screen now shows upgrade recommendations * Better error tracking and diagnostics * Improved macOS Podman detection * More robust welcome screen * Better Podman machine handling on macOS * Automatic upgrade support * Better image registry search * Better reconnection handling when server connection drops * Fixed WebSocket event handling ### New Agent Capabilities * Monk can store and retrieve distributed blobs across cluster nodes * Monk can mount blobs into containers for application data * Monk can synchronize blobs across cluster peers automatically ### Improvements * Better image push to cluster registries ### Features * SSH machine connections on macOS * Automatic cluster registry setup * Better registry push support * Improved release automation and deployment pipeline *** ### Core Chat & AI Capabilities * AI-powered chat interface for natural language infrastructure management * Monk expert agent with comprehensive documentation knowledge * Agent reasoning and decision-making transparency * Custom instructions support ### Infrastructure Management * Cluster creation and growth tools * Cloud provider integration (AWS, DigitalOcean, Azure) * Multi-architecture image builds (ARM64/AMD64) * Container image management * Workload deployment and management tools ### Developer Tools * Template editor functionality * File search and analysis tools * Manifest and template validation ### Authentication & Security * Authentication flow with token management * Budget management system * Credential storage and management ### Network & Reliability * WebSocket-based communication protocol * Network failure recovery with automatic retry * Session management ### Initial Agent Capabilities * Monk can analyze a codebase and autonomously identify components, dependencies, and required services * Monk can discover environment variables, defaults, and service endpoints used by each component * Monk can infer relationships between variables across components and generate connection mappings * Monk can suggest safe default values and randomized secrets for configuration * Monk can operate across monorepos and multi-language stacks while ignoring non-deployable assets * Monk can containerize services by creating or adapting Dockerfiles specific to each component * Monk can build container images and run sanity checks, iterating until services start without critical errors * Monk can generate deployment configurations for projects end-to-end * Monk can bootstrap new clusters with minimal setup and without requiring an external control plane * Monk can manage clusters fully inside your cloud accounts (AWS, GCP, Azure, DigitalOcean) * Monk can autonomously configure networking, including subnets and security groups * Monk can set up encrypted overlay networks for secure intra-cluster communication * Monk can provide a built-in container registry for fast image pulls * Monk can provision a built-in container registry inside the system namespace with TLS and basic auth * Monk can deploy workloads locally or to a selected cluster using the project MANIFEST * Monk can create and provision clusters (VMs, networking, registries) as required by a deployment plan * Monk can deploy workloads by managing containers, secrets, environment variables, firewall rules, and external service wiring * Monk can update configurations and fix deployment errors autonomously * Monk can stream logs in real time from any container * Monk can provide instant shell access to any running container * Monk can open a shell terminal into a running workload for live debugging * Monk can stream logs and open a live logs terminal for a selected workload * Monk can answer natural-language questions about deployments and cluster health * Monk can select and integrate reusable vendor templates for databases, caches, queues, and other services * Monk can inject and propagate connection details between components via explicit variable relationships # Monk Features Source: https://docs.monk.io/features Deploy and manage full-stack applications with an autonomous AI DevOps agent ## Do Without Doing You describe what you want. Monk analyzes your code, provisions infrastructure, and runs it in production across any cloud provider. Deploy multi-component apps without writing config files Deploy to AWS, GCP, Azure, DigitalOcean, Hetzner, and more Pre-configured packages, automatically adapted to your stack Monk lives in your coding agent. No cloud consoles, no dashboards. ## What Makes Monk Different Monk doesn't hand you a plan and wait. It reads your code, provisions infrastructure, wires services together, and deploys. You stay in your editor the whole time. Monk understands your code structure regardless of the tech stack. You don't need to tell it what you're using. Deploy to AWS, GCP, Azure, DigitalOcean, Hetzner, Netlify, Vercel, and others. Move between them when you need to. No CLI flags to memorize, no config file syntax to learn. Describe what you want and Monk does it. Monk exposes itself to Claude Code, Gemini, Codex, Cursor, and other tools through MCP. Your coding agent delegates DevOps tasks to Monk without breaking your flow. Monk factors in cost when making infrastructure decisions. You get real-time breakdowns and recommendations to reduce spending. Authorize Monk to work on your behalf. It handles the rest. ## Core Features ### Deployment & Build Monk reads your code, containerizes it, and sets up build pipelines. You don't write deployment configs. From code to production, end to end Codebase understanding for any language Automatic container and orchestration setup Build and deployment pipelines, generated for you Automatic per-branch preview environments ### Infrastructure & Cloud Monk provisions cloud resources across any provider. You can migrate workloads between clouds with a single command. Infrastructure setup on any cloud, handled for you Deploy across AWS, GCP, Azure, and more Move apps between clouds with one command ### Configuration & Data Monk generates service configs, deploys databases, and wires everything together. Generated configs and service connections Deploy any database with one command Message queues and other services Monk can spin up API gateway, endpoints, and auth setup Manage dev, staging, and production environments ### Networking & Security Production-grade networking and security, configured automatically. VPCs, load balancers, CDN, and traffic routing SSL/TLS, firewalls, IAM, and security scanning ### Operations & Monitoring Monitor, scale, and maintain your apps. Tell Monk what you need in plain language. Real-time monitoring and debugging from your coding agent Autonomous monitoring and issue resolution Push updates and maintain infrastructure via chat Scale resources with plain language commands Real-time cost tracking and breakdowns Manage infrastructure from Slack — questions, approvals, and alerts ### Developer Experience Monk installs as a plugin in Claude Code, Cursor, Codex, and Antigravity. You deploy and manage everything through MCP without leaving your coding agent. Deploy and manage from your coding agent. No context switching. Use Monk with Claude, Gemini, Codex, Cursor, and other coding agents Pre-configured packages, automatically adapted to your stack AI-assisted code modifications and fixes ## Team Features Features for teams managing multiple projects and environments. Shared workspaces and collaborative debugging Multi-project and environment management RBAC, SSO, and team security controls Team-specific documentation and standards Usage metrics and cost allocation Install Monk and deploy your first app # Access Control & Security Source: https://docs.monk.io/features/access-control RBAC, audit logging, and team security ## What It Does Monk controls who can do what across your organization. You define roles with fine-grained permissions, assign them to team members, and every action gets logged. That's it. No policy files, no YAML, no third-party auth layer. ## RBAC You create custom roles. Each role gets explicit permissions over specific resources. Permissions are actions matched against resource patterns. Enforcement happens server-side, so it doesn't matter whether someone's using the agent plugin, the dashboard, or hitting the backend directly. **Resource types:** * Templates, Secrets, Images (environment-scoped) * Builds, Clusters, Workspaces * Org members, Org roles, Org settings * Audit (team or self scope) **Actions:** * `read`, `write`, `admin`, `*` * `deploy` (templates), `use` (secrets) **Permission patterns:** Glob patterns give you flexible matching: * `/templates/**` — all templates * `/environments/staging/secrets/**` — secrets in staging only * `/clusters/**` — all clusters * `/audit/team/**` — team-wide audit events ### Managing RBAC in the UI Open the **Organization panel** and click **Manage Roles**. **Creating roles:** 1. Click **Create new** 2. Enter role name and description 3. Add permissions — select resource type, action, and optional environment 4. Click **Create Role** **Assigning roles:** In the Organization panel overview, use the **Assign Role** card. Pick a member, pick a role, click Assign. **Viewing member roles:** Monk RBAC The Members table shows each member's assigned roles at a glance. ### Managing RBAC via Chat You can do all of this through chat too. ``` /monk list roles for my organization ``` ``` /monk create a role called deployer with deploy access to /templates/** ``` ``` /monk give Alice the deployer role ``` ``` /monk does Bob have access to /secrets/**? ``` ``` /monk show my current permissions ``` ## Audit Logging Every action in your organization gets recorded. Builds, deployments, cluster operations, secret changes — all of it, with actor, status, and trace info attached. **How to view:** * **Activity panel:** Open it from the [Monk dashboard](https://monk.io/dashboard) for the full timeline. Owners and admins see team-wide activity. Everyone else sees their own. ## Not Available Yet Single sign-on, domain enforcement, and org-wide 2FA aren't available yet. Organizations, members, and shared clusters Environment-scoped permissions and isolation # APIs Source: https://docs.monk.io/features/apis Third-party API integration and lifecycle management ## What It Does Your app talks to external services — Stripe for payments, Auth0 for authentication, SendGrid for emails, Twilio for SMS. These aren't infrastructure you run. They're third-party APIs your code depends on. Monk doesn't just detect that you're using Stripe. It provisions Stripe resources, injects credentials into your app, and updates webhook URLs when your deployment changes. You provide credentials once. Monk handles the rest. ## How It Works ### API Orchestration Monk treats third-party APIs as first-class resources, same as containers and cloud infrastructure. **Example: Auth0 Integration** 1. During [code analysis](/features/code-analysis), Monk detects Auth0 SDK usage 2. You provide Auth0 management API credentials 3. Monk provisions an Auth0 application for your deployment 4. Monk obtains the client ID and secret, configures callback URLs (e.g., `https://yourapp.com/auth/callback`) 5. Monk injects credentials into your app via [Configuration & Wiring](/features/configuration-and-wiring) 6. When you redeploy or move clouds, Monk updates callback URLs automatically Your code just initiates Auth0 login. Monk handles the rest. **Example: Stripe Integration** 1. Monk detects Stripe SDK usage in your code 2. You provide Stripe API credentials 3. Monk creates webhook endpoints pointing to your API, configures signing secrets 4. Monk injects publishable and secret keys into frontend/backend 5. When you scale or redeploy, Monk updates webhook URLs to match ### Automatic Detection During code analysis, Monk identifies your third-party API integrations — SDKs, API key references, webhook handlers, OAuth flows, and redirect URLs. It understands your API dependencies before you configure anything. ### Unified System Map Monk maintains a complete map of your system: your containers, cloud infrastructure, [databases](/features/databases), [essential services](/features/essential-services), and third-party API resources. It tracks the relationships between all of them. No more bouncing between the Stripe dashboard, Auth0 dashboard, AWS console, and DNS provider. It's all in one place. ### Dynamic Configuration Updates When your deployment changes, API configurations need to follow. Monk handles this automatically — webhook URLs, OAuth callback URLs, CORS origins, API endpoint references, and signing secret rotation. Without Monk, a redeployment means logging into every provider dashboard and updating URLs by hand. With Monk, you deploy and everything stays in sync. ### Authorization & Credentials You provide API credentials for each service (API keys, OAuth tokens, management API access). Monk provisions resources, obtains necessary secrets, and updates configurations throughout the lifecycle. Credentials are encrypted at rest on your machine and on your Monk cluster using your cloud provider's KMS. They are never sent to Monk servers and never exposed to the LLM. Monk needs these because it manages your accounts with third-party providers on your behalf (BYOI). See [Security](/features/security) for details. ### Supported Integrations Monk supports several third-party API providers via [integrations](/integrations): * **Identity & Authentication:** Auth0, AWS Cognito, AWS IAM * **Payments:** Stripe (payment processing, subscriptions, webhooks) Don't see your API? Let us know. Any API with a management interface can potentially be orchestrated by Monk. ## Next Steps How Monk injects credentials and connects your services. Full list of supported APIs and providers. # Autonomous Deployment Source: https://docs.monk.io/features/autonomous-deployment End-to-end deployment automation from code to production ## What It Does Open your project in your coding agent. Tell Monk to deploy it. Monk handles everything from code analysis to production — no configuration files, no container definitions, no infrastructure templates. It works whether you're shipping a single service or a polyglot monorepo. ## How It Works ### Phase 1: Analysis & Planning Open your project in your [coding agent](/getting-started/get-started) and tell your coding agent to deploy it. Monk then: 1. **Analyzes your source code** — [Deep-dives](/features/code-analysis) into your app structure across any language or framework 2. **Maps all components** — Frontends, backends, API servers, workers, cron jobs 3. **Containerizes services** — [Builds containers](/features/containerization) for each component and verifies they run 4. **Identifies third-party services** — [Databases](/features/databases), [message queues](/features/essential-services), [APIs](/features/apis) your app depends on 5. **Infers configuration** — [Generates](/features/configuration-and-wiring) environment variables and connection strings based on service relationships You get a human-readable configuration of your entire system to review before anything ships. Monk analyzing and planning a deployment ### Phase 2: Infrastructure & Deployment Once you approve, Monk: 1. **Provisions infrastructure** — [Creates cloud resources](/features/cloud-provisioning) (VMs, GPUs, VPCs, load balancers) across [any provider](/features/multi-cloud) 2. **Deploys your app** — Your code and all third-party services, wired together 3. **Places each component optimally**: * **Frontend** (React, Vue, etc.) → Netlify or Vercel * **API server** → Containerized on cloud compute * **Database** → Managed service or self-hosted * **Workers** → Containerized with auto-scaling ### Example: E-commerce App Say you have a project with a React frontend, Node.js API, Python recommendation engine, PostgreSQL, Redis, and Stripe. **You:** `deploy this project` **Monk:** Analyzes all three codebases, detects Postgres/Redis/Stripe dependencies, containerizes the Node.js and Python services, and presents a plan — frontend on Netlify, API on AWS ECS, recommendation engine on AWS with GPU, Postgres on RDS, Redis on Redis Cloud, Stripe wired in. **You:** Approve and provide credentials. **Monk:** Provisions everything and deploys. Fully wired, ready to go. ## Credentials & Security Monk needs **credentials and authorization** for your cloud providers, hosting platforms, and database providers. That's the only thing it asks of you. Credentials are encrypted at rest on your machine and on your Monk cluster using your cloud provider's KMS. They are never sent to Monk servers and never exposed to the LLM. See [Security](/features/security) for details. You authorize Monk once per provider. It handles the rest. > [How to obtain credentials](/getting-started/obtaining-credentials) for all supported providers *** How Monk understands your codebase before deployment Deploy across AWS, GCP, Azure, DigitalOcean, Hetzner, and more # Build & CI/CD Source: https://docs.monk.io/features/build-and-cicd Autonomous build and deployment pipelines ## What It Does Once your app's deployed, Monk sets up continuous deployment. Every code push automatically updates your running application. No GitHub Actions workflows to write. No secrets to configure. No container registry setup. Tell Monk to set up CI. Your app auto-deploys on every push to main. ## How to Set It Up ### Trigger CI/CD Setup After your app is deployed, chat with Monk in your [coding agent](/getting-started/get-started): **You:** `set up CI/CD for this project` Monk walks you through the rest. CICD ### Prerequisites You'll need: 1. **GitHub repository** - Your project must live in a GitHub repo 2. **Deployed application** - Your project must already be [deployed](/features/autonomous-deployment) and running 3. **GitHub PAT (optional)** - A [Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) lets Monk automate the full setup **Without a PAT:** Monk generates the necessary files and walks you through manual GitHub configuration. **With a PAT:** Monk handles everything automatically, including secure injection of deployment keys. ## How It Works ### Step 1: Configuration Once you ask Monk to configure CI and [code analysis](/features/code-analysis) completes, Monk: 1. **Generates a GitHub Action workflow** - Creates `.github/workflows/deploy.yml` 2. **Configures intelligent rebuilds** - Only rebuilds what changed: * [Service configuration](/features/configuration-and-wiring) updates * [Container](/features/containerization) rebuilds when code changes * Dependency updates when needed ### Step 2: Deployment Keys **If you provided a GitHub PAT:** * Monk injects deployment keys into your repository secrets * Everything's configured automatically * You just commit and push **If you didn't provide a PAT:** * Monk generates the necessary secrets * Gives you step-by-step instructions for manual GitHub configuration * Shows you exactly where to paste each secret ### Step 3: Activation 1. **Review the changes** - Monk shows you the generated workflow file 2. **Commit and push** - The changes go into your repository 3. **That's it** - Every push to `main` updates your deployment from here on ### The Build Process The CI job mirrors what happened during initial deployment. **On every push to main:** 1. **Code analysis** - Monk analyzes what changed 2. **Configuration update** - Updates [service configuration](/features/configuration-and-wiring) if needed 3. **Container rebuild** - Rebuilds [containers](/features/containerization) for modified services 4. **Zero-downtime deployment** - Monk's orchestrator updates running services without interruption 5. **Verification** - Confirms updated services are healthy **Smart rebuilds:** * Changed frontend — rebuilds and redeploys frontend only * Changed API code — rebuilds API container, rolling update in production * Changed worker — rebuilds worker container, replaces instances * No code changes — skips unnecessary builds ## Currently Supported **CI/CD Platform:** * **GitHub Actions** - Fully supported Support for Jenkins, GitLab CI/CD, Bitbucket Pipelines, and Azure DevOps is on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). ## CI/CD vs. Capsules CI/CD deploys a selected branch (typically `main`) to your existing, long-lived cluster — your production or staging environment. It's the pipeline that keeps your deployed application up to date with every merge. [Capsules](/features/capsules) take this further: they use CI/CD to spin up an isolated, ephemeral cluster for every feature branch. Each cluster lives only as long as the branch does. Where CI/CD answers "how do I ship `main`?", Capsules answers "how do I test every branch in a real environment before it reaches `main`?" You can use either or both. Most teams start with CI/CD for their main deployment and add Capsules when they want per-branch preview environments. ## Related Features Per-branch preview environments — isolated, ephemeral clusters for every branch. How Monk handles your initial deployment before CI/CD kicks in. How Monk builds and rebuilds containers during the CI process. # Capsules Source: https://docs.monk.io/features/capsules Automatic per-branch preview environments — every push gets its own isolated cluster ## What It Does Capsules gives every Git branch its own production environment — same cloud provider, same cluster topology, same container images, same deployment pipeline. The only difference is it runs your branch instead of `main`, and there are no users hitting it. Secrets can be shared with production or overridden per capsule. Push a branch — Monk provisions a dedicated cloud cluster, builds your app, and deploys it with a unique TLS-enabled preview URL. Merge or delete the branch — the cluster is destroyed and all resources are released. No shared staging. No environment conflicts. No forgotten resources running up cloud bills. Available on Pro and Team plans. Capsules and [CI/CD](/features/build-and-cicd) are complementary. CI/CD deploys a selected branch (typically `main`) to an existing, long-lived cluster. Capsules uses CI/CD to create isolated, ephemeral clusters for every other branch — each cluster lives only as long as the branch does. ## Problems It Solves **The staging bottleneck.** Teams share a handful of staging environments. Developers queue up to test, conflicts arise when multiple features land on the same environment, and bugs slip through because the test environment doesn't match what ships. Capsules eliminates this — every branch gets its own isolated environment. **AI code verification.** AI agents can generate code, but without a real environment to deploy into, they can't verify it works. Capsules give agents a production-grade environment to deploy, test, and iterate against — so the output is code that demonstrably works, not code that should work. ## Setup Open the Monk chat and say: ``` /monk set up Capsules ``` You can also say "enable preview environments" or "set up dynamic environments." Monk walks you through a few choices: Pick a cloud provider — AWS, Azure, GCP, DigitalOcean, or Hetzner — and select a region and instance size for capsule clusters. Choose which branches to exclude (typically `main` and `master` — your permanent environments). You can also filter by naming convention. Monk creates a GitHub Actions workflow and supporting scripts, pushes all required credentials (cloud keys, API tokens) to GitHub as encrypted secrets, and commits the configuration to your repository. Commit the generated files and push: ```bash theme={null} git add .github/workflows/dynenv.yml scripts/ git commit -m "Add Monk Capsules configuration" git push ``` That's it. From this point on, everything is automatic. **You need:** * A project already [deployed through Monk](/features/autonomous-deployment) with a build manifest * A GitHub repository with Actions enabled * Cloud provider credentials for at least one provider * An organization and project set up in Monk (Monk prompts you if these are missing) ## The Automatic Lifecycle Once Capsules is configured, the lifecycle is fully automatic: | Git event | What happens | | ------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | **Push a branch** | A new cluster is provisioned, containers are built, and the app is deployed. A pull request is auto-created. | | **Push again to the same branch** | The app is redeployed with the latest code. No new cluster needed. | | **PR is merged or branch is deleted** | The cluster is destroyed and all cloud resources are released. | Each capsule appears as a GitHub Deployment, so status is visible directly in pull requests — reviewers can see whether the environment is live, deploying, or failed without leaving GitHub. ## Schedule Policies Capsules don't need to run 24/7. Schedule policies control when environments are up or down so you're not paying for idle clusters overnight. **Set a schedule:** ``` /monk set capsules to run weekdays 8am-7pm UTC ``` **Check the current schedule:** ``` /monk show capsule schedule ``` **Override for a specific capsule:** ``` /monk override the schedule for the feature-auth capsule ``` **Clear an override:** ``` /monk clear the schedule override for feature-auth ``` Schedule options: * **Daily windows** — e.g., up from 8 AM to 7 PM, down overnight * **Weekly windows** — e.g., only on weekdays * **Per-capsule overrides** — keep a specific capsule up during a demo, or shut one down early Schedules can be set at the project level (applies to all capsules) or overridden per capsule. A background job enforces the schedule hourly. ## Managing Capsules The [Monk dashboard](https://monk.io/dashboard) has a dedicated **Capsules** panel where you can see all active capsules, their branch, status, cluster, and preview URL. You can also manage everything through the chat: **List active capsules:** ``` /monk show my capsules ``` **Tear down a capsule manually:** ``` /monk destroy the capsule for feature-auth ``` **Provision a capsule manually:** ``` /monk provision a capsule for the feature-auth branch ``` ### Updating Secrets Capsule secrets can be updated in two modes: ``` /monk update capsule secrets ``` Monk asks you to choose: * **Global** — updates GitHub encrypted secrets and the workflow. Affects all future capsules. Requires a commit and push. * **Local** — injects secrets directly into the running capsule via the CLI. Immediate, but only affects that one instance. ### Manual GitHub Actions Dispatch The generated workflow supports manual dispatch from the GitHub Actions tab. You can trigger `provision_deploy`, `deploy`, `deprovision`, or `destroy` for any branch. ## How Teams Use It 1. A developer creates a feature branch and pushes code 2. Within minutes, a fully deployed preview environment is live 3. The developer shares the preview URL in the PR for review 4. QA tests directly against the capsule — no waiting for staging 5. Product reviews the feature in an isolated, realistic setting 6. The PR is approved and merged — the capsule cleans itself up No infrastructure tickets. No environment conflicts. No forgotten resources. ## For AI Agents An AI coding agent can use Capsules to verify its own work: 1. Create a branch and write code 2. Push the branch — a capsule spins up automatically 3. Hit real endpoints, observe real behavior, read real logs 4. Find issues, fix them, push again — the capsule redeploys 5. Hand off a working, verified pull request — not a guess The agent operates against a real running system that mirrors production, iterates until things work, and only surfaces results when they're validated. ## Key Details * **Multi-cloud** — AWS, Azure, GCP, DigitalOcean, and Hetzner * **Full isolation** — each capsule runs on its own cluster with no shared state * **GitHub-native** — uses GitHub Actions for orchestration and GitHub Deployments for status tracking * **Secure credentials** — cloud credentials and app secrets stored in GitHub's encrypted environment secrets; short-lived tokens minted at runtime * **Preview URLs** — every capsule gets a TLS-enabled shareable URL * **Branch filtering** — include or exclude branches by pattern Deploy a selected branch to a long-lived cluster — the pipeline Capsules builds on Permanent staging, production, and dev environments on long-lived clusters # Cloud Infrastructure Source: https://docs.monk.io/features/cloud-provisioning Autonomous cloud resource setup across providers ## What It Does You describe what you need. Your coding agent and Monk figure out the infrastructure — VMs, networks, storage, load balancers, GPUs — and provision it across any cloud provider. No cloud consoles. No Terraform. No provider-specific tooling. Monk reads your application's structure and requirements, then creates right-sized resources in the best regions for your workload. ## Supported Cloud Providers Monk works with your existing cloud accounts: * [AWS](https://aws.amazon.com/) — Full support * [Google Cloud Platform](https://cloud.google.com/) — Full support * [Microsoft Azure](https://azure.microsoft.com/) — Full support * [DigitalOcean](https://www.digitalocean.com/) — Full support * [Hetzner](https://www.hetzner.com/cloud) — Full support **Need another provider?** [Let us know](/getting-help). Monk's architecture makes it straightforward to add new cloud platforms. ## How It Works ### Connect Your Cloud Account Monk uses your existing cloud accounts. No new accounts needed. 1. Monk detects it needs to provision resources 2. You're asked for cloud credentials for the target provider 3. You provide credentials once per provider After that, Monk provisions and manages infrastructure automatically. No further cloud console work required. **Your credentials stay secure.** Credentials are encrypted at rest on your machine and on your Monk cluster using your cloud provider's KMS. They are never sent to Monk servers and never exposed to the LLM. See [Security](/features/security) for full details. > [Step-by-step credential guides](/getting-started/obtaining-credentials) for AWS, GCP, Azure, DigitalOcean, and Hetzner ### Intelligent Resource Selection Based on [code analysis](/features/code-analysis), Monk understands what your app needs and provisions accordingly. **Instance sizing:** * **API servers** — sized for your expected traffic and compute needs * **GPU workloads** — appropriate GPU instances for ML/AI services * **Memory-intensive services** — sufficient RAM for databases, caches * **Workers** — right-sized for background job processing **Region selection:** * **Performance** — minimizes latency to your users * **Cost** — balances performance with budget * **Compliance** — respects data residency requirements * **Multi-region** — distributes across regions when needed **You confirm before anything gets created.** Monk shows the proposed infrastructure. You can discuss, adjust, and approve — all in chat. **Example conversation:** ``` Monk: Your API needs 2 VMs for the backend. I'm recommending: - 2x n1-standard-2 (2 vCPU, 7.5GB RAM) in us-central1 - Estimated cost: ~$100/month You: Can we use a cheaper region? Monk: Sure! Using us-central1 (Iowa) is 15% cheaper than us-east1 (Virginia). Updated estimate: ~$85/month. Sound good? You: Perfect Monk: Creating resources... ``` ### Core Resources Monk provisions and manages these automatically. **Compute:** * **Virtual machines** — right-sized instances for your workloads * **GPUs** — for AI/ML, rendering, or compute-intensive tasks **Storage:** * **Persistent volumes** — for databases and stateful services * **Snapshots** — automatic backups with point-in-time recovery * **Block storage** — attached to instances as needed **Networking:** * **VPCs** — isolated networks for your application * **Subnets** — proper network segmentation * **Security groups and firewalls** — access control * **Load balancers** — traffic distribution and high availability ### Beyond Core Resources Monk handles specialized cloud services too. See [Integrations](/integrations) for the full list: * Managed databases (RDS, Cloud SQL, Azure Database) * Object storage (S3, Cloud Storage, Azure Blob) * Message queues (SQS, Pub/Sub, Service Bus) * Caching services (ElastiCache, Memorystore) * DNS services (Route 53, Cloud DNS, Azure DNS) When your application needs one of these, Monk integrates it automatically. ### Intelligent Placement Monk co-locates resources with their dependencies. * Redis Cloud in GCP `eu-central`? Monk places your containers in the same region. * AWS RDS in `us-west-2`? API servers go to `us-west-2`. * External API in Europe? Services placed nearby for low latency. It also understands third-party service locations (Redis Cloud, MongoDB Atlas, etc.), minimizes inter-cloud data transfer costs, and optimizes for latency when crossing provider boundaries. ### Multi-Region and Multi-Cloud You can use one region for simplicity, or span multiple regions for global reach. Monk handles the complexity either way. Not sure which region? Ask. "Which region should I use for US customers?" Monk recommends based on latency, cost, and availability. You can also run parts of your application on different providers simultaneously — frontend on one, API on another, database on a third. See [Multi-Cloud Support](/features/multi-cloud) for details. ### Continuous Infrastructure Management Monk doesn't just provision once. It manages infrastructure throughout your application's lifecycle. **While your app runs, Monk:** * **Adds resources** — scales up when needed * **Removes unused resources** — cleans up to save costs * **Tracks costs** — real-time spending per resource. See [Cost Tracking](/features/cost-tracking). * **Optimizes placement** — adjusts based on usage patterns * **Maintains security** — updates firewalls and security groups as needed **You stay in control.** Monk asks before making significant changes. You can tell it to scale up, scale down, or optimize. Nothing happens without your approval. ## Next Steps Deploy across multiple providers simultaneously. How your infrastructure and credentials are protected. # Code Analysis Source: https://docs.monk.io/features/code-analysis Monk reads your codebase and figures out what it needs to run ## What It Does Monk analyzes your code, figures out what your app needs, and handles the rest. You don't write config files. You don't document your architecture. Your coding agent points Monk at a repo, and Monk understands it. Single service or complex monorepo. Any language, any framework. Existing container or Kubernetes configs, or none at all — doesn't matter. ## How It Works ### When Analysis Happens Monk analyzes your code automatically: * **During deployment** — whenever you or your coding agent trigger a deploy * **When changes are detected** — new services, swapped databases, restructured architecture * **On demand** — tell Monk `analyse my project` to run analysis without deploying Analysis of the project ### What Monk Looks For Monk doesn't read every line of source code. It targets specific indicators to build a picture of your application: * **Entry points** — `main.py`, `index.js`, `server.go`, application start files * **Environment variable references** — `process.env.DATABASE_URL`, `os.getenv()`, config loading * **Dependencies** — `package.json`, `requirements.txt`, `go.mod`, `Gemfile` * **Exposed endpoints** — API routes, port bindings, server configurations * **Database connections** — ORM configs, database client initialization * **Third-party integrations** — API clients, SDK usage, service connections The goal: understand what your code does, what it connects to, and what values it needs to run. ### Existing Configuration If you already have config files, Monk reads those too: * **READMEs** — setup instructions, architecture notes * **Compose files** — service definitions and relationships * **Helm charts** — Kubernetes configurations * **Terraform files** — infrastructure requirements * **CI/CD configs** — build and deployment steps Monk uses these files for additional context, but **doesn't require them**. Hand Monk raw code with zero config files and it'll figure everything out. ### Example: What Monk Sees Here's what Monk picks up in a typical Node.js + React project: ``` my-ecommerce-app/ ├── frontend/ │ ├── package.json # Monk sees: React dependencies, build scripts │ ├── src/ │ │ ├── index.tsx # Entry point for frontend │ │ └── api/ │ │ └── client.ts # Monk sees: API_URL environment variable needed │ └── .env.example # Monk reads: Expected environment variables │ ├── backend/ │ ├── package.json # Monk sees: Express, pg (PostgreSQL client), Stripe SDK │ ├── server.js # Entry point, PORT binding (3000) │ ├── routes/ │ │ ├── api.js # Monk sees: REST endpoints exposed │ │ └── payments.js # Monk sees: Stripe integration needs STRIPE_SECRET_KEY │ └── db/ │ └── connection.js # Monk sees: PostgreSQL connection string needed │ ├── docker-compose.yml # Monk reads: Service structure, postgres:14 └── README.md # Monk reads: "Run npm install, then npm start" ``` **From this, Monk understands:** * **Frontend**: React SPA that needs an API connection — deploy to Netlify/Vercel * **Backend**: Express API on port 3000, needs PostgreSQL and Stripe — containerize and deploy to cloud * **Database**: PostgreSQL required — provision a managed instance or self-host * **Config needed**: `API_URL`, `DATABASE_URL`, `STRIPE_SECRET_KEY` * **Build process**: `npm install` then `npm start` for both services ### What Happens Next Once Monk understands your code, your coding agent and Monk work together to: 1. **Configure and wire services** — generate all environment variables and connection strings 2. **Containerize your application** — create optimized containers tailored to your app 3. **Set up build & CI/CD** — create build pipelines that match your app's needs 4. **Deploy everything** — place each component on the right platform ## Privacy & Security Fragments of your source code are sent to Monk servers for analysis but are **not stored** and are **not used for training**. The code is examined solely to infer deployment details. See [Security](/features/security) for full details on how your code and credentials are protected. See how Monk deploys your app end-to-end after analysis. How Monk auto-generates configs from what it learns about your code. # Source Code Editing (Alpha) Source: https://docs.monk.io/features/code-editing Targeted code fixes to resolve deployment issues **Alpha Feature** -- Source code editing is currently in alpha. Monk makes targeted fixes to resolve deployment issues, not general code refactoring. ## What It Does When you deploy, Monk sometimes finds issues in your source code that block a successful deployment. Wrong ports, missing environment variables, broken connection strings, container build problems. Monk doesn't just report these. It fixes them. Targeted, deployment-focused edits to get your app running. ## How It Works ### When Monk Edits Code During deployment, if Monk hits a fixable issue, it tells you what's wrong and offers to fix it. **Example -- Wrong Port Configuration:** ``` Monk: I found an issue: Your server listens on port 8080, but the Containerfile exposes port 3000. I can fix this in server.js. Should I proceed? You: Yes, fix it Monk: [Makes targeted change to port configuration] Fixed! Server now uses port 3000 to match Containerfile. ``` Monk shows you a diff before applying anything. You decide what happens next: * **Approve** -- Apply the fix * **Reject** -- Skip it * **Revert** -- Undo after seeing the result Every edit goes through this review. No changes land without your sign-off. Monk also keeps changes minimal and scoped strictly to deployment -- it won't touch business logic, and it can't edit secrets or template files. Rollback is always possible. ### Types of Fixes **Deployment-related:** * **Port configuration** -- Aligning server port with Containerfile EXPOSE * **Environment variables** -- Reading from correct env var names * **Connection strings** -- Fixing database URLs, Redis hosts * **Build commands** -- Correcting package.json scripts, Makefiles * **Entry points** -- Fixing main files, startup commands **Containerization:** * **Containerfile issues** -- EXPOSE directives, CMD/ENTRYPOINT * **Build scripts** -- Missing build steps, incorrect paths * **Health checks** -- Adding or fixing health check endpoints * **Dependencies** -- Critical missing dependencies for deployment **Configuration:** * **Config file paths** -- Fixing paths that work locally but fail in containers * **Static file serving** -- Correct asset paths for containerized apps * **API endpoints** -- Environment-aware endpoint configuration ### What Monk Won't Touch Monk's code editing is strictly for deployment. It won't: * Add new features to your application * Refactor code for better structure * Fix business logic bugs * Optimize performance (unless it blocks deployment) * Modify your application's core functionality Use your regular coding tools for application development. Use Monk for deployment fixes. ## Files Monk Can Edit ### Source Code * **JavaScript/TypeScript:** `*.ts`, `*.tsx`, `*.js`, `*.jsx`, `*.mjs`, `*.cjs` * **Python:** `*.py` * **Go:** `*.go` * **Java/Kotlin:** `*.java`, `*.kt` * **Rust:** `*.rs` * **Ruby:** `*.rb` * **PHP:** `*.php` * **C/C++:** `*.c`, `*.cpp`, `*.h`, `*.hpp` * **Shell scripts:** `*.sh`, `*.bash` ### Build & Configuration * **Package files:** `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`, `Gemfile`, `composer.json` * **Build configs:** `tsconfig.json`, `jsconfig.json`, `pyproject.toml`, `Makefile`, `Procfile` * **Container:** `Containerfile`, `docker-compose.yml` * **CI/CD:** `.github/workflows/*.yml`, `netlify.toml`, `vercel.json` ### Off-Limits * **Monk templates** -- `MANIFEST`, `*.yaml` (use the template editor) * **Environment files** -- `.env`, `.env.production` (security) * **Lock files** -- `package-lock.json`, `yarn.lock`, etc. (integrity) * **Generated files** -- `dist/`, `build/`, `target/` directories * **Binary files** -- Images, fonts, archives ## Example Scenarios ### Scenario 1: Port Mismatch **Problem:** Containerfile exposes 3000, but Express app listens on 8080. **Monk's fix:** ```typescript theme={null} // server.js - BEFORE const port = 8080; app.listen(port); // server.js - AFTER (Monk's fix) const port = process.env.PORT || 3000; app.listen(port); ``` Aligns your code with what the container expects. ### Scenario 2: Missing Environment Variable **Problem:** App crashes because DATABASE\_URL isn't read from the environment. **Monk's fix:** ```python theme={null} # config.py - BEFORE DB_URL = "postgresql://localhost/mydb" # config.py - AFTER (Monk's fix) import os DB_URL = os.environ.get("DATABASE_URL", "postgresql://localhost/mydb") ``` Now the app works with Monk's configuration injection. ### Scenario 3: Incorrect Connection String **Problem:** Hardcoded localhost Redis connection fails in production. **Monk's fix:** ```javascript theme={null} // redis.js - BEFORE const redis = new Redis({ host: 'localhost', port: 6379 }); // redis.js - AFTER (Monk's fix) const redis = new Redis({ host: process.env.REDIS_HOST || 'localhost', port: parseInt(process.env.REDIS_PORT || '6379') }); ``` Lets Monk inject the correct Redis connection details. ### Scenario 4: Container Build Issue **Problem:** Containerfile COPY command fails because the path is wrong. **Monk's fix:** ```dockerfile theme={null} # Containerfile - BEFORE COPY src/app /app # Containerfile - AFTER (Monk's fix) COPY ./src /app/src ``` Fixes the build error. That's it. ## When Code Editing Happens ### During Deployment Most often, during initial deployment: ``` /monk deploy this project ``` Monk may find that the container build fails, the app crashes on startup, or the health check hits the wrong port. Instead of stopping, it proposes fixes. ### On Demand You can ask directly: ``` /monk fix the container build error ``` ``` /monk update my code to use environment variables ``` ``` /monk fix the port configuration for deployment ``` Monk examines the issue and proposes targeted fixes. ### After Failed Deployments If a deployment fails due to code issues: ``` Monk: Deployment failed. The API server expects REDIS_URL but your code only reads REDIS_HOST and REDIS_PORT. I can update your code to read from REDIS_URL instead. Should I fix this? ``` ## Limitations This is an **alpha feature**. It works well for common deployment issues but may not catch every edge case. Best suited for straightforward codebases. Complex fixes may still need human review. Monk errs on the side of caution -- if it's unsure, it asks rather than guessing. Monk doesn't generate new features, write application logic, implement business requirements, or create new components. It fixes what's blocking your deployment. Nothing more. See how code editing fits into Monk's deployment flow. How Monk handles environment variables and service connections. # Configuration & Wiring Source: https://docs.monk.io/features/configuration-and-wiring Auto-generated configs and service connections ## What It Does Your services need to talk to each other. Your API needs database credentials. Your frontend needs the API URL. Your workers need message queue config. Monk figures this out during [code analysis](/features/code-analysis) and generates the complete configuration for your entire application. Connection strings, environment variables, secrets — all derived and wired automatically. ## How It Works ### Automatic Configuration Generation Based on code analysis, Monk computes every configuration value you need. **What Monk discovers:** * Environment variables your code references (`DATABASE_URL`, `API_KEY`, etc.) * Services that need to connect (API to Database, Worker to Redis) * External APIs your application calls * Port numbers and endpoints * Secret values that need protection **What Monk generates:** * Database connection strings (`postgresql://user:pass@host:5432/db`) * Service URLs (`https://api.yourapp.com`) * API endpoints between services (`http://api-service:3000/graphql`) * Credentials for databases and services * All environment variables your code expects Monk asks for clarification when it needs your input. ### Dynamic Service Discovery You don't need to know database hostnames, internal IPs, or port numbers. Monk uses built-in service discovery to derive values dynamically: * **Database connection strings** — Generated from database host, port, and credentials * **Service endpoints** — Internal URLs for service-to-service communication * **Load balancer URLs** — Public endpoints for external access * **Network addresses** — Container IPs and DNS names Scale from 1 to 5 API servers. All 5 get the correct configuration automatically. ### Intelligent Connection Mapping Monk understands how your components connect and configures discovery accordingly. **Network connections:** * API server to Database (TCP, credentials needed) * Worker to Message queue (pub/sub, connection string needed) * Services within application (internal DNS, no auth needed) **Callback connections:** * Webhook URLs for external services (Stripe, GitHub, etc.) * OAuth redirect URLs * API callback endpoints **Browser-server connections:** * Frontend to API (public URL, CORS configuration) * Static assets to CDN (public URLs) Monk configures each type appropriately. Internal services use private DNS and encrypted tunnels. Public endpoints get load balancer URLs. Callbacks receive publicly accessible URLs. CORS is configured for frontend-backend communication. ### Automatic Secret Detection Monk knows which values are secrets and treats them — and anything derived from them — securely. **Automatically identified as secrets:** * Database passwords * API keys (Stripe, OpenAI, AWS credentials, etc.) * JWT signing keys * OAuth client secrets * Encryption keys **Secret handling:** * Stored in built-in secret storage * Never exposed in configuration files * Injected securely at runtime * Rotatable without code changes ### Reconfiguration at Any Time You don't need to get configuration right upfront. Tell Monk to reconfigure whenever you want: ``` You: Change the database connection pool size to 20 ``` ``` You: Add FEATURE_FLAG_NEW_UI to the frontend ``` Configuration changes are applied with zero downtime after deployment. ### Review & Modify Full Configuration You can review the full configuration file and ask Monk to modify any part of it. ## What You Need to Provide Monk derives most configuration automatically. You provide only what it can't discover: **External API keys:** * Stripe, OpenAI, SendGrid, Twilio, etc. * Monk asks for these when it finds references in your code **Custom configuration:** * Feature flags * Business logic constants * Non-standard environment variables **Domain names:** * Your custom domain (if not inferred from code) * Email sending domain That's it. Connection strings, credentials, service URLs — Monk generates all of it. How Monk discovers your configuration requirements from source code. How secrets are stored, injected, and protected at runtime. # Containerization & Orchestration Source: https://docs.monk.io/features/containerization Automatic containerization and workload management ## What It Does Your backend services — API servers, workers, background jobs — need to run somewhere. You put them in containers that can run on any cloud VM. After Monk [analyzes your code](/features/code-analysis), it containerizes the components that need it, tests them, and prepares them for deployment. No Containerfiles required. If you have them, Monk uses them. Containerization ## How Containerization Works ### Automatic Container Creation After code analysis, Monk identifies which components need containerization: * **API servers** — Express, FastAPI, Spring Boot, Go HTTP servers, etc. * **Backend services** — Node.js, Python, Go, Java, Ruby, .NET services * **Workers** — Celery, Sidekiq, background job processors * **Scheduled tasks** — Cron jobs, periodic workers For each component, Monk either uses your existing container configuration or generates one from scratch. ### Using Existing Containerfiles If you already have a `Containerfile`, Monk will: 1. **Build it** — Uses your existing configuration as-is 2. **Test the container** — Boots it up to verify it works 3. **Iterate if needed** — If there are issues, Monk fixes them automatically 4. **Optimize if possible** — Suggests improvements for security and performance ### Generating New Containerfiles No Containerfile? Monk generates one using best practices. **Multi-stage builds** — Separate build and runtime stages to minimize image size: ``` # Example of what Monk generates for a Node.js API FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --only=production FROM node:18-alpine WORKDIR /app COPY --from=builder /app/node_modules ./node_modules COPY . . EXPOSE 3000 CMD ["node", "server.js"] ``` What you'll see in practice: * **Small base images** — Alpine Linux or distroless when possible * **Security hardened** — Non-root users, minimal attack surface * **Optimized layers** — Proper caching for faster builds * **Framework-specific** — Tailored to Django, Rails, Spring Boot, etc. ### Testing & Iteration Monk doesn't just generate containers. It validates they work. 1. **Builds the container** locally on your machine 2. **Starts the container** and tests if the service boots 3. **Checks health** to verify the service responds 4. **Fixes issues** — if problems occur, Monk iterates until they're resolved **Example iteration:** ``` Monk: Built container for API server Monk: Testing... Port 3000 not accessible Monk: Issue found - server.js listens on port 8080, Containerfile exposes 3000 Monk: I can fix the port in your code. Should I proceed? You: Yes Monk: Fixed server.js to use PORT env var, rebuilding... Monk: Testing... Success! Container running on port 3000 ``` Monk can make targeted code fixes to resolve deployment issues. > See [Source Code Editing](/features/code-editing) for details on code fixes ### Local Build + CI/CD Integration Containerization happens in two places: **Locally** — On your machine when you first deploy. Monk builds containers locally so you can test and verify before anything goes to production. **CI/CD** — Monk [configures your pipeline](/features/build-and-cicd) so containers rebuild automatically when you push changes. Your production images stay current without manual intervention. ### Zero-Config Container Registry Every Monk deployment includes a private container registry. No setup required. * Your container images are stored securely * Direct push from your machine or CI workflow * Images deploy straight to the runtime environment * No external registry accounts needed **BYOI principle:** The container registry runs on your infrastructure, just like everything else Monk manages. Your images never leave your control. ## How Orchestration Works ### Monk's Built-in Orchestrator Monk includes a distributed orchestrator that manages all your containers regardless of where they run. It doesn't use Kubernetes under the hood. What this means for you: * **Direct control** — Monk manages containers natively, no abstraction layers * **Multi-cloud aware** — Works across AWS, GCP, Azure, DigitalOcean, Hetzner * **Unified control plane** — Replaces both Terraform and Kubernetes functions * **Resource efficient** — No K8s overhead or complexity ### What the Orchestrator Handles **Live resource tracking** — A real-time resource graph of your entire infrastructure. It understands dependencies, relationships, and the lifecycle of every component. **Networking** — Automatic network segmentation, encrypted service-to-service connections, cross-region and cross-cloud support. See [Networking](/features/networking) for details. **Cost awareness** — Tracks the cost of each resource over time. See [Cost Tracking](/features/cost-tracking) for real-time monitoring. **Multi-cloud orchestration** — Manages containers across different providers simultaneously. One-command cluster spin-up. Works on-prem too. See [Multi-Cloud Support](/features/multi-cloud) for details. ### Universal Container Support While Monk provides a private registry, it pulls from anywhere — AWS ECR, Google Container Registry, Azure Container Registry, public registries, private registries. You provide the address and credentials, and Monk handles the rest. ## Example: Multi-Service Application Here's containerization in action with a Python + Node.js app. **Your application:** * FastAPI backend (Python) * React frontend (doesn't need containerization — goes to Netlify) * Celery worker (Python) * PostgreSQL database (managed service — no container needed) **What Monk does:** 1. **Analyzes components** — FastAPI and Celery need containers 2. **Generates Containerfiles:** ``` # FastAPI FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] # Celery FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["celery", "-A", "tasks", "worker"] ``` 3. **Builds and tests** both containers locally 4. **Pushes to registry** in your cloud account 5. **Deploys containers** with proper orchestration How Monk understands what to containerize Automatic container rebuilds on every push # Cost Tracking Source: https://docs.monk.io/features/cost-tracking Real-time cost tracking and breakdowns ## What It Does Monk tracks the cost of your entire infrastructure in real-time. Ask for current costs, projections, or comparisons. Monk knows the price of every resource across all cloud providers and integrations. ## How It Works ### Cost Knowledge Base Monk maintains up-to-date cost information for cloud resources. **What Monk tracks:** * **Cloud provider pricing** - Current rates from AWS, GCP, Azure, DigitalOcean, Hetzner * **Resource uptime** - How long each resource has been running * **Integration pricing** - Costs for [databases](/features/databases), [essential services](/features/essential-services), and [APIs](/features/apis) that implement cost estimation * **Usage-based pricing** - Data transfer, storage, API calls where applicable Cluster cost calculated by Monk Monk continuously updates its pricing database to ensure accuracy. ### Real-Time Cost Queries Ask Monk for cost information anytime via chat in your [coding agent](/getting-started/get-started). **Current costs:** ``` You: What's the current cost of running this system? Monk: Current infrastructure cost breakdown: - 4x AWS t3.medium instances: $0.33/hour ($240/month) - PostgreSQL RDS (db.t3.medium): $0.068/hour ($50/month) - Redis ElastiCache (cache.t3.micro): $0.017/hour ($12/month) - Application Load Balancer: $0.025/hour ($18/month) Total: $0.44/hour ($320/month) ``` **Different time units:** ``` You: How much per day? Monk: Current daily cost: $10.56 ``` ``` You: Cost per week? Monk: Current weekly cost: $73.92 ``` ``` You: Show me cost per second Monk: Current cost: $0.000122/second ``` Monk can express costs in any time unit: second, hour, day, week, month. ### Cost Projections & Estimates You want to know future costs. Ask Monk to project. **Monthly projections:** ``` You: Project the monthly cost Monk: Based on current usage: - Monthly projection: $320 - Assumes 24/7 operation - Does not include usage-based charges (data transfer, API calls) ``` **Estimate before changes:** ``` You: How much would it cost to add 2 more instances? Monk: Cost estimate with 2 additional t3.medium instances: - Current: $0.44/hour ($320/month) - With 2 more: $0.60/hour ($440/month) - Increase: $0.16/hour ($120/month, +37.5%) ``` You know the cost impact before you make infrastructure changes. That's it. No spreadsheets, no manual calculations. ### Integration Cost Support Many [integrations](/integrations) implement Monk's cost estimation interface. **Supported:** * **Cloud-managed databases** - RDS, Cloud SQL, Azure Database, DigitalOcean Managed Database * **Cloud storage** - S3, Cloud Storage, Azure Blob, DigitalOcean Spaces * **Managed caches** - ElastiCache, Memorystore, Redis Cloud * **Third-party services** - MongoDB Atlas, Redis Cloud, Neon, and more **Coverage varies:** * Core cloud resources (VMs, storage, networking) - Fully tracked * Popular managed services - Some tracked * Specialized integrations - Varies (we're working to cover all of them) **Integration cost tracking:** Coverage is continuously improving. Check with Monk to see if a specific service supports cost estimation, or refer to [Integrations](/integrations) for details. ### Cost Comparison (Hypothetical Resources) Here's where it gets interesting. Monk understands costs of resources **you're not even using**. Want to know if switching clouds or regions would save money? Just ask. ``` You: How much would this cost on DigitalOcean instead of AWS? Monk: Current AWS cost: $0.44/hour ($320/month) Equivalent DigitalOcean Droplets: $0.28/hour ($205/month) Savings: $115/month (36% cheaper) ``` ``` You: What if we moved to us-west-2 instead of us-east-1? Monk: Same infrastructure in us-west-2: Cost: $0.46/hour ($335/month) Difference: +$15/month (5% more expensive) ``` ``` You: Compare cost of running this on GCP vs Azure Monk: Current (AWS): $320/month GCP equivalent: $295/month (-$25/month) Azure equivalent: $340/month (+$20/month) ``` **Use cases:** * **Before deployment** - Compare clouds to choose the most cost-effective * **Migration planning** - See if [migrating](/features/workload-migration) would save money * **Region selection** - Pick the cheapest region for your needs * **Optimization** - Evaluate alternatives to reduce costs ## Coming Soon Proactive cost analysis — 24/7 monitoring, optimization proposals, autonomous execution, budget alerts — is on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). Here's what that'll look like: ``` Monk: Cost analysis complete. I found 3 optimization opportunities: 1. API servers running at 20% average CPU → Downsize from t3.medium to t3.small → Savings: $120/month 2. Database idle 18 hours/day → Switch to smaller instance during off-peak → Savings: $25/month 3. Redis cache hit rate only 40% → Reduce cache size by 50% → Savings: $6/month Total potential savings: $151/month (43%) Approve these changes? You: Yes, do it ``` No manual cost analysis, no spreadsheets. Monk handles it autonomously. ## Related Features The resources Monk tracks costs for. Migrate to a cheaper cloud when the numbers say so. # Custom Policies Source: https://docs.monk.io/features/custom-knowledge Team-specific policies and instructions for Monk agents ## What It Does Custom policies let you define rules that Monk agents follow across your organization. You write them in Markdown. Monk reads them before every action it takes. No ambiguity. No drift. Every team member gets the same behavior from Monk, every time. ## How It Works Admins create instruction files scoped to three levels: * **Organization** — applies to all members and clusters. * **Environment** — applies when deploying to that environment. * **Cluster** — applies when connected to that cluster. These instructions shape everything Monk does: chat responses, project generation, infrastructure decisions, and deployments. They're enforced automatically through RBAC — you don't need to remind anyone to follow them. Instruction files can contain any guidance you'd give a new team member: * "Don't spawn instances larger than t3.large." * "Always use AWS RDS for PostgreSQL. Never self-hosted." * "Require approval before deploying to production." * "No public IPs in production." * "Use the internal container registry only." ## Example Instruction File ```markdown theme={null} # Team Deployment Rules ## Instance Sizing - Use t3.medium for staging, t3.large for production. - Never use instances larger than t3.xlarge without approval. ## Database - Always use AWS RDS for PostgreSQL. - Do not deploy self-hosted databases. ## Secrets - Never store secrets in environment variables directly. - Use team-scoped secrets for all credentials. ``` That's it. Monk reads this file and applies it to every action it takes within the defined scope. Your standards persist even as the team changes. ## Availability Available on the Team plan only. ## Next Steps Set up RBAC and audit logging to govern who can change policies. Manage your organization and invite members. # Monk Dashboard Source: https://docs.monk.io/features/dashboard The web console for your account, teams, clusters, and billing The Monk dashboard at [monk.io/dashboard](https://monk.io/dashboard) is the web console for everything that lives above a single deployment: your account, teams, projects, clusters, access control, audit, and billing. Day-to-day deploy and operate work happens in your coding agent; the dashboard is where you manage the organization around it. It is also the easiest place to [create your Monk account](https://monk.io/dashboard): sign-up starts a 5-day free trial, no credit card required. Monk dashboard overview ## Finding Your Way Around The top bar has a context switcher: flip between your **Personal** scope and any **team**, and optionally focus a single project. Global search (⌘K) jumps to any project, environment, or cluster. The top-right corner has a theme toggle, your account menu, and a **bug icon** for reporting issues directly to the engineering team. ## What's Where **Overview** — landing page with project, environment, and cluster counts, subscription status, watcher credits, and infrastructure cost for the month. **Build** — *Projects* (create, custom instructions, capsule schedules), *Environments* (including PR-preview capsules with branch, PR link, and preview URL), *Clusters* (live status, members, and per-cluster detail), and *Workspaces* (editor workspaces linked to projects). **Access Control** (teams) — *Members* with role management and email invites, *Roles* with a permission builder for custom roles, and *Assignments* binding roles to members with project or environment scope. **Observability** (teams) — *Audit*: the event log of everything agents and members did, grouped into traces, filterable by project. **Billing** — *Infra* shows cloud cost and Monk fees per cluster and month; *Subscription* manages your plan, seats, and Stripe billing portal. **System** — *Settings* for cluster access policy, org-wide custom instructions, and billing alerts; *Install Monk* for connecting coding agents. ## Reporting Bugs Click the bug icon in the top-right corner, pick Bug, Feature, or Other, and describe the issue. You can also report from your coding agent with `/monk report a bug` — see [Getting Help](/getting-help). How teams, invites, and shared clusters work # Databases Source: https://docs.monk.io/features/databases Deploy any database with one command ## What It Does Your app needs a database. Monk detects that during [code analysis](/features/code-analysis), then provisions and configures it automatically — PostgreSQL, MongoDB, Redis, or any of 20+ supported databases. You pick the deployment model: self-hosted containers, cloud-managed services, or third-party providers. Monk handles provisioning, connection strings, and configuration. ## How It Works ### Automatic Database Detection During code analysis, Monk figures out what your app needs: * Database type (PostgreSQL, MySQL, MongoDB, Redis, etc.) * ORM or driver in use (Prisma, SQLAlchemy, Mongoose, etc.) * Connection string references in your code * Schema files and migrations * Required features (full-text search, JSON columns, etc.) No upfront configuration required. Monk reads the code and acts on it. ### Deployment Options Once Monk knows which database you need, you choose how to deploy it. #### Option 1: Self-Hosted in Containers **Best for:** Development, staging, proof-of-concept * Runs in a container on your infrastructure * Monk handles setup, persistence, and configuration * Fast to spin up, easy to tear down * Full control over version and settings #### Option 2: Cloud Provider Managed Database **Best for:** Production, simplified operations, automatic backups * Uses your cloud provider's managed service (AWS RDS, GCP Cloud SQL, Azure Database, DigitalOcean Managed Database) * Automatic backups, updates, high availability * You provide cloud credentials, Monk provisions and configures #### Option 3: Third-Party Managed Database **Best for:** Specialized features, global distribution, serverless scaling * Uses specialized providers (MongoDB Atlas, Redis Cloud, Neon, PlanetScale) * Often includes free tiers or serverless pricing * Advanced features like multi-region replication **Progression example (MongoDB):** * Start with **MongoDB Community** (containerized) for development * Move to **DigitalOcean Managed MongoDB** for production simplicity * Scale to **MongoDB Atlas** for global distribution Monk recommends the best option based on your stage, scale, and requirements. You decide. ### Supported Databases Monk supports 20+ databases out of the box. Here are the highlights: * **PostgreSQL** — the go-to relational database * **MySQL** — widely supported, battle-tested * **MongoDB** — flexible document store * **Redis** — in-memory caching and data structures * **Cassandra** — distributed, high-availability NoSQL * **TimescaleDB** — time-series on top of PostgreSQL * **Neo4j** — graph database * **Elasticsearch** — full-text search and analytics See [Integrations](/integrations) for the full list of supported databases. ### Automatic Connection Management Monk generates and manages connection strings automatically via [Configuration & Wiring](/features/configuration-and-wiring): * Connection string generation (`postgresql://user:pass@host:5432/db`) * Credentials creation and secure storage * Network configuration for database access * Connection pooling settings * SSL/TLS encryption setup Switch between deployment options without changing your code. **Data migration between databases** isn't automated yet. When switching from self-hosted to managed (or vice versa), Monk updates connection strings but doesn't transfer data. You'll need to migrate data manually (export/import). ### Database Credentials When you use managed databases (MongoDB Atlas, Redis Cloud, cloud provider databases), Monk requests the necessary credentials automatically. **Third-party services:** * MongoDB Atlas, Redis Cloud, Neon — Monk asks for API keys when needed **Cloud-managed databases:** * AWS RDS, GCP Cloud SQL, etc. — uses your cloud provider credentials > [How to obtain database credentials](/getting-started/obtaining-credentials) ### Database Configuration Monk can tune database settings to match your requirements: * Memory allocation and caching * Connection pool sizes * Query timeouts * Storage size and IOPS * Replication settings * Performance tuning parameters Tell Monk what you need in plain language. It understands database-specific parameters for every supported engine. ### Backups & Restore Automated backup integration via chat is still in development. Some managed services already expose backup APIs that Monk can leverage — check individual integration docs for details. **Managed databases with backup API support:** * **MongoDB Atlas** (M10+ dedicated clusters) * **AWS RDS** (PostgreSQL, MySQL, MariaDB, SQL Server, Oracle) * **DigitalOcean Managed Databases** (PostgreSQL, MySQL, MongoDB, Valkey) * **GCP Cloud SQL** (PostgreSQL, MySQL) * **Azure Cosmos DB** * **Redis Cloud** (Pro tier) * **AWS DynamoDB** **Self-hosted databases:** For containerized databases, use manual backup procedures: volume snapshots, native tools (`mongodump`, `pg_dump`, `mysqldump`), or scheduled scripts. ## Roadmap Data plane integration, custom management actions, and automated backups are on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). Full list of supported databases, cloud providers, and third-party services. Prompting examples for common database operations. # Multiple Environments Source: https://docs.monk.io/features/environments Separate staging, production, and dev deployments ## What It Does Monk gives you isolated environments per workspace — staging, production, dev, or whatever you call them. Each one gets its own configuration and maps to a specific cluster. Your deployments stay separate even when they share the same code. ## Creating Environments Tell Monk what you need: ``` /monk create staging and production environments ``` Monk sets up separate configs and asks which cluster each one should target. ## Building and Deploying ### Environment-Specific Builds Monk tailors configuration per environment — variables, managed services, sizing. Just say which one: ``` /monk build for production ``` ### Deploying by Name ``` /monk deploy to staging ``` Monk switches to the right cluster, builds only what that environment needs, and deploys it. You don't manage the wiring. ### Deploy to Multiple at Once ``` /monk deploy to staging and production ``` Monk handles them sequentially, each to its own cluster. ## Linking Environments to Clusters Each environment maps to one cluster. You set that up at deploy time or in the Clusters panel. **At deploy time**, Monk asks if there's no link yet: ``` /monk deploy to staging ``` Monk: "Which cluster should I use for staging environment?" **In the Clusters panel**, you can see and manage all environment-cluster associations visually. Multiple environments can share a cluster (separated by tags), or each can have its own. Changing a link doesn't affect existing deployments. ## Use Cases **Dev / Staging / Production pipeline:** ``` You: Create dev, staging, and prod environments You: Link dev to my-local-cluster You: Link staging to my-digitalocean-cluster You: Link prod to my-aws-cluster You: Deploy to all environments ``` Each environment deploys to its designated infrastructure. **Feature branches:** ``` You: Create feature-auth environment You: Deploy feature-auth to my-test-cluster ``` Test in isolation, then promote to staging when it's ready. **Multi-region deployments:** ``` You: Create us-prod and eu-prod environments You: Link us-prod to my-aws-us-cluster You: Link eu-prod to my-aws-eu-cluster ``` Same app, multiple regions, separate environments. ## Managing Environments **List them:** ``` You: What environments do I have? ``` **Check a cluster link:** ``` You: Which cluster is linked to staging? ``` **Delete one:** ``` You: Delete the dev environment ``` You can also manage everything visually in the **Clusters panel**. ## Team Environments In an org context, environments can target org clusters. This keeps deployments consistent across team members, even when each person defines environments in their own workspace. Secrets are environment-scoped too — staging and production get different values. > See [Team Collaboration](/features/team-collaboration) for details on shared clusters and secrets. ## Go Deeper Automatic per-branch preview environments — every push gets its own cluster. How Monk handles environment-specific config, variables, and secrets. Multi-cluster setup and cloud provider management. # Essential Services Source: https://docs.monk.io/features/essential-services Message queues, caches, storage, and any other service Monk can spin up ## What It Does Your app doesn't just need a database. It needs message queues, object storage, caches, API gateways, and more. Monk detects these needs during [code analysis](/features/code-analysis), then provisions and configures them automatically. You pick how they're deployed: self-hosted, cloud managed, or third-party. Monk handles provisioning, connection strings, and wiring. ## How It Works ### Automatic Service Detection During code analysis, Monk identifies your infrastructure requirements: * Message queue usage (RabbitMQ, Kafka, SQS clients) * Object storage references (S3 SDK, MinIO client, file uploads) * Caching layers (Redis, Memcached) * API gateway and web server needs (Kong, Nginx, Apache) It figures out what you need before you configure anything. ### Deployment Options You've got three choices for each service. #### Option 1: Self-Hosted in Containers Best for development, staging, and full control. Services run in containers on your infrastructure. Monk handles setup, persistence, and configuration. Quick to spin up, easy to tear down. #### Option 2: Cloud Provider Managed Best for production. Uses your cloud provider's managed services (AWS S3/SQS, GCP Cloud Storage/Pub-Sub, Azure Blob/Service Bus). You provide credentials, Monk provisions and configures everything. #### Option 3: Third-Party Managed Best for specialized needs or multi-cloud setups. Uses providers like Cloudflare R2, Redis Cloud, or other SaaS platforms. Often have free tiers or pay-per-use pricing. #### Progression Examples **Object Storage:** * Start with MinIO (containerized) for development * Move to DigitalOcean Spaces or AWS S3 for production * Scale to Cloudflare R2 for global CDN + storage **Message Queues:** * Start with RabbitMQ (containerized) for development * Move to AWS SQS or managed RabbitMQ for production * Scale to Apache Kafka for high-throughput event streaming **Caching:** * Start with Redis (containerized) for development * Move to AWS ElastiCache or managed Redis for production * Scale to Redis Cloud for global, multi-region caching Monk recommends the best option based on your stage, scale, and requirements. ### Supported Services Monk supports 50+ services out of the box. Here are the major categories: * **Message Queues & Brokers** -- RabbitMQ, Apache Kafka, AWS SQS * **Object Storage** -- MinIO, AWS S3, Cloudflare R2 * **Caching** -- Redis, Memcached, Hazelcast * **API & Gateway** -- Kong, Hasura GraphQL Engine, AWS API Gateway * **Web Servers & Proxies** -- Nginx, Apache, HAProxy * **Security & Secrets** -- HashiCorp Vault, Keycloak * **Monitoring & Observability** -- Prometheus + Grafana, ELK Stack, Fluent Bit * **DevOps & CI/CD** -- Jenkins, GitLab, SonarQube * **Data Integration & ETL** -- Airbyte, Apache Airflow * **Analytics & BI** -- Metabase, Apache Superset * **AI/ML Serving** -- Ollama, TensorFlow See [Integrations](/integrations) for the full list. ### Automatic Connection Management Monk generates and manages connection strings and credentials automatically via [Configuration & Wiring](/features/configuration-and-wiring). This includes: * Connection string generation (queue URLs, storage endpoints, cache URLs) * Credential creation and secure storage * Network configuration and authentication setup * Service discovery registration Switch between deployment options without code changes. Move from self-hosted MinIO to AWS S3, and Monk updates your app's storage configuration automatically. Your code using the S3 SDK keeps working without modification. Data migration between service providers isn't automated yet. When you switch from self-hosted to managed (or vice versa), Monk updates connection strings but doesn't transfer existing data. You'll need to migrate data manually for now. ### Service Configuration Monk can configure service settings to match your requirements -- queue sizes, storage quotas, cache memory limits, rate limits, health checks, monitoring thresholds, and more. Tell Monk what you need. It understands service-specific parameters for each supported type. Data migration, advanced monitoring, and custom management actions are on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). ## Next Steps Browse the full catalog of 50+ supported services and providers. Learn how Monk manages connection strings and credentials. # MCP Support Source: https://docs.monk.io/features/mcp-support How Monk works with Claude Code, Cursor, Codex, and other coding agents ## What Monk MCP Does Monk exposes itself as an MCP server so coding agents can call Monk directly from the same project context. That means you do not need to choose between your coding agent and Monk. You can use: * your coding agent for building and changing application code * Monk for deployment, infrastructure, connected services, runtime operations, monitoring, scaling, and cost visibility ## Why This Matters Most coding agents are strongest when working on source code. Monk is strongest when turning that source code into a running system. Through MCP, your coding agent can delegate operational tasks to Monk without forcing you to: * switch tools * copy context between chats * hand-edit agent config files * leave unwanted configuration files behind in every repo ## How the Mechanism Works The [Monk plugin](/getting-started/get-started) installs a local companion process, `monk-agent`, which serves the Monk MCP endpoint on `http://127.0.0.1:7419/mcp`. The plugin registers this endpoint with your coding agent through the host's native plugin mechanism — Claude Code, Cursor, and Codex wire it up on install, and the Antigravity plugin writes a `monk` entry to `~/.gemini/config/mcp_config.json`. Nothing is written into your project repositories. The host still decides whether Monk is visible and usable. Depending on the agent, you may need to approve tool usage in chat or complete a one-time MCP sign-in. Any other MCP-capable agent can connect to the same local endpoint once `monk-agent` is running, though the plugin hosts above are the supported paths. ## What Other Agents Can Ask Monk To Do Once connected through MCP, a coding agent can use Monk to: * inspect the project and explain what infrastructure it needs * deploy a service or full multi-service application * provision databases, queues, caches, and third-party services * configure networking, domains, TLS, and secure service-to-service wiring * inspect logs, health, and runtime state * scale workloads and optimize cost * migrate workloads between clouds or hosting models In short, the coding agent handles code work, and Monk handles operational work. ## Typical Workflow 1. Build or modify the application with your coding agent 2. Ask that agent to use Monk to analyze deployment needs 3. Let Monk provision services and deploy the stack 4. Ask Monk for logs, status, scaling, or cost follow-up This creates a much smoother path from local development to production operations. ## How To Enable It Install the Monk plugin in your coding agent — the MCP connection is set up automatically as part of the install. See [Install Monk](/getting-started/get-started). ## Related Pages Install the Monk plugin in your coding agent Let Monk handle the full deploy pipeline # Monitoring & Observability Source: https://docs.monk.io/features/monitoring Logs, shell access, and metrics from your coding agent ## What It Does Monk gives you logs, shell access, metrics, and troubleshooting right in the chat. You ask questions in plain English. Monk pulls the answers from your running system. That's it. No dashboards, no log aggregation setup, no query languages. ## How It Works ### System Understanding Monk maintains a live picture of your entire deployment: * Every service and its current state (running, stopped, restarting) * Every container and what it's doing * Every database connection and query load * Every API integration and its status * Resource usage per component (CPU, memory, disk, network) * Relationships between all components Ask Monk about your system: ``` /monk what's running right now? ``` ### Live Log Streaming View logs from any service in real time: ``` /monk show me logs from the API server ``` Monk streams live logs, pulls historical logs, and filters by time range, severity, or keywords. You can tail multiple services at once. Everything stays in the chat. ### Log Analysis Don't want to read logs yourself? Let Monk do it: ``` /monk check the API server logs for errors ``` Monk reads the output, finds patterns, and suggests fixes. ### Shell Access Get a shell into any container instantly: ``` /monk give me shell access to the API server ``` This isn't SSH. Monk opens a shell connection over its intra-cluster encrypted P2P network. No SSH keys to manage, no bastion hosts, no port forwarding. It works across all clouds because the connection runs through Monk's own mesh -- not through your cloud provider's networking. ### Resource Metrics Track resource consumption across your stack: ``` /monk what's the resource usage? ``` Monk tracks CPU, memory, disk, and network for every service. It also surfaces application-level metrics: queue depth, connection pools, cache hit rates, database query times, slow queries, API response times, and webhook deliveries. ### Autonomous Troubleshooting Something's wrong? Describe the problem: ``` /monk users are reporting slow page loads ``` Monk reads logs across all services, checks metrics and resource usage, examines workload state, correlates the data, and identifies the root cause. It suggests fixes -- and can apply them if you say the word. Monk has full system context. It investigates across every component simultaneously. ## 24/7 Monitoring with Watcher For continuous monitoring and Slack alerts, set up Watcher: ``` /monk set up watcher ``` Watcher monitors your cluster around the clock and sends AI-analyzed alerts when issues arise. Each alert includes a "Fix with Monk" button that opens your coding agent with full issue context. > See [Watcher](/features/watcher) for setup and configuration details. Available on Pro and Team plans. ## Observability Integrations Integrations with Datadog, New Relic, Grafana Cloud, and other observability platforms are on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). ## Go Deeper 24/7 autonomous monitoring with Slack alerts How Monk secures shell access and cluster communication # Multi-Cloud Support Source: https://docs.monk.io/features/multi-cloud Deploy across all major cloud providers ## What It Does Monk deploys your app to any supported cloud provider. The configuration it generates from [code analysis](/features/code-analysis) is cloud-agnostic. You can split a single app across multiple clouds at the same time. ## How It Works ### Platform-Agnostic Configuration When Monk analyzes your application, the resulting configuration works everywhere: * Configuration deploys to AWS, GCP, Azure, DigitalOcean, or Hetzner * Deploy to one cloud today, switch to another tomorrow * No provider-specific code or configs required * Monk handles platform-specific details automatically ### Split Across Multiple Clouds Monk manages multiple cloud accounts and resources as one system. Your app can span providers. **Example architecture:** * Compute — DigitalOcean Droplets (affordable VMs) * AI/ML — Azure OpenAI Service (GPT models) * CDN — Cloudflare (global edge network) Monk orchestrates all of this as a single deployment. ### Secure Cross-Cloud Networking When your app spans multiple clouds, Monk handles networking automatically: * All communications encrypted by default * No VPN setup required * No Tailscale configuration needed * Works across clouds and datacenters * Automatic network segmentation See [Networking](/features/networking) for details on how cross-cloud communication works. ### Cloud Service Replacement Monk finds equivalent services across cloud providers, subject to available [integrations](/integrations): | Service Type | AWS | GCP | Azure | DigitalOcean | | ------------------ | ----------- | -------------------- | --------------- | ---------------- | | Object Storage | S3 | Cloud Storage | Blob Storage | Spaces | | Managed PostgreSQL | RDS | Cloud SQL | Database | Managed Database | | Load Balancer | ALB/NLB | Cloud Load Balancing | Load Balancer | Load Balancer | | Cache | ElastiCache | Memorystore | Cache for Redis | DO Valkey | ### On-Premises + Cloud Hybrid Monk can run your system across on-premises infrastructure and cloud. **Hybrid scenarios:** * Sensitive data stays on-prem, processing in cloud * Development/staging on-prem, production in cloud * Legacy systems on-prem, new services in cloud * Burst to cloud for peak loads **Requirements:** * Manual setup for on-premises machines (network access, orchestrator installation) * Monk manages hybrid infrastructure as one system * Encrypted networking between on-prem and cloud **On-premises support:** See [Getting Help](/getting-help) for guidance on hybrid cloud + on-prem deployments. Manual setup is required for on-premises machines, but once configured, Monk manages everything as a unified system. ### Migration Need to switch cloud providers? Monk handles it. Tell it where you want to go, and it provisions, migrates, and cuts over. See [Workload Migration](/features/workload-migration) for the full process. ## Supported Providers **Major Cloud Providers:** * [AWS](https://aws.amazon.com/) * [Google Cloud Platform](https://cloud.google.com/) * [Microsoft Azure](https://azure.microsoft.com/) * [DigitalOcean](https://www.digitalocean.com/) * [Hetzner](https://www.hetzner.com/cloud) **Specialized Hosting:** * [Netlify](https://www.netlify.com/) — Frontend hosting * [Vercel](https://vercel.com/) — Frontend hosting * [Cloudflare](https://www.cloudflare.com/) — CDN, Workers, R2 storage **Managed Services:** * [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) — Managed MongoDB * [Redis Cloud](https://redis.com/cloud/) — Managed Redis * [Neon](https://neon.tech/) — Serverless PostgreSQL * And more via [integrations](/integrations) ## Next Steps How Monk provisions and manages cloud resources. Move between clouds with zero downtime. # Networking Source: https://docs.monk.io/features/networking Encrypted overlay network, dynamic routing, and zero-config connectivity ## What It Does Monk creates an encrypted overlay network that spans all your infrastructure — across clouds, regions, and on-premises. Every service talks to every other service securely, no matter where it runs. **Zero configuration required.** Monk derives all networking from your app's [connection graph](/features/configuration-and-wiring) and configures routing, firewalls, and load balancing automatically. ## How It Works ### Encrypted Overlay Network Monk spans an encrypted overlay network between every VM in your system, regardless of location. **Network coverage:** * Single cloud, single region * Single cloud, multi-region * Multi-cloud (AWS + GCP + Azure + DigitalOcean + Hetzner) * Cloud + on-premises (manual setup required) **Encryption by default:** * All inter-service communication encrypted automatically * No VPN setup required * No Tailscale or WireGuard configuration needed * Works transparently across cloud provider boundaries **Example:** Your API server on AWS us-east-1 can securely reach: * PostgreSQL on GCP europe-west1 * Redis on DigitalOcean nyc1 * An on-premises legacy system in your datacenter All connections are encrypted and routed through the overlay network automatically. ### Dynamic Routing & Firewall Configuration Monk configures routing and firewalls dynamically at every level of your infrastructure. **Configuration levels:** * **Container level** - Network policies between containers * **Machine level** - Host firewall rules * **Security group level** - Cloud provider security groups * **VPC level** - Network ACLs and routing tables **All derived from the connection graph:** Monk reads your app's [Configuration & Wiring](/features/configuration-and-wiring) and figures out which services need to talk to each other: ``` Your application: Frontend → API Server → Database API Server → Redis Worker → Redis Worker → External API (Stripe) ``` **Monk configures:** * Frontend can reach API Server (public endpoint) * API Server can reach Database (internal, encrypted) * API Server can reach Redis (internal, encrypted) * Worker can reach Redis (internal, encrypted) * Worker can reach Stripe API (public, via internet gateway) * **Nothing else can communicate** — all other paths blocked by default **Firewall rules are managed automatically:** * Only required ports open to the internet * Internal services stay on the private network * Unused ports blocked by default * Rules update dynamically as services scale ### Load Balancing Monk handles load balancing at multiple levels. **Cloud-managed load balancers:** * Uses AWS ALB, GCP Load Balancing, or Azure Load Balancer as appropriate * Automatically provisioned for public-facing services * Health checks configured automatically * SSL/TLS termination when using custom domains **Internal load balancing:** * Built-in load balancing between service replicas * Automatic service discovery — no manual endpoint configuration * Requests distributed across healthy instances * Failed instances removed from rotation automatically **Zero-downtime deployments:** * Monk orchestrates rolling updates when containers change * New version starts while the old version still serves traffic * Traffic switches only after health checks pass * Old version shuts down gracefully after traffic drains ### Temporary Domains with TLS Every machine managed by Monk gets a free temporary domain. **Format:** `.runs.onmonk.io` **Features:** * Automatically assigned to each VM * Free TLS certificates included * Only active if a workload explicitly opens a port to the internet * Useful for development, testing, and temporary deployments **Use cases:** * Test API endpoints before configuring a custom domain * Share staging environment URLs with your team * Quick demos without DNS configuration * Development environments with HTTPS These temporary domains are assigned to all machines but only serve traffic if your application opens a port publicly. Internal services (databases, workers, etc.) don't expose anything via these domains. ### Custom Domains with Cloudflare Integration You can bring your own domain. Monk integrates with Cloudflare to manage DNS and domain setup automatically. Custom domains currently require your domain to be managed by Cloudflare. Support for additional DNS providers is on the roadmap. **Bring your own domain:** * Use your domain name (e.g., `api.yourapp.com`, `www.yourapp.com`) * Monk manages your Cloudflare DNS zone * Automatic DNS record creation and updates * Free SSL/TLS certificates via Cloudflare **What Monk handles:** * DNS zone configuration * A/AAAA records pointing to your services * CNAME records for aliases * SSL/TLS certificate provisioning * DNS updates when infrastructure changes **Setup:** 1. Have your domain registered with Cloudflare (or transfer it) 2. Provide Cloudflare API credentials to Monk 3. Tell Monk which domain to use for your app 4. Monk configures DNS and connects your domain to your deployment When your infrastructure changes (scaling, migration, etc.), Monk updates DNS records automatically. ### Cloud Network Provisioning Monk provisions cloud networking resources automatically. **What Monk creates:** * **VPCs** - Isolated networks for your app * **Subnets** - Public and private subnets as needed * **Internet gateways** - For public-facing services * **NAT gateways** - For private services that need internet access (updates, APIs) * **Route tables** - Routing between subnets and the internet * **Security groups** - Firewall rules at instance level * **Network ACLs** - Additional firewall layer at subnet level All configured based on your app's architecture. No manual network engineering required. ### API Gateway Integration Monk uses cloud-managed API gateways when they make sense. **Supported:** * AWS API Gateway * GCP API Gateway * Azure API Management **Benefits:** * Centralized API management * Rate limiting and throttling * Request/response transformation * API versioning support Monk provisions and configures API gateways when your architecture benefits from them — for example, serverless functions or microservices with many endpoints. ## Built-in Ingress Controller with ModSecurity Monk's orchestrator includes a built-in ingress controller with ModSecurity WAF (Web Application Firewall) enabled by default on all clusters: * Automatic WAF protection against common web attacks * DDoS mitigation at the application layer * Request filtering and rate limiting * Zero configuration required ## Related Features The connection graph that drives all networking decisions. Encryption, firewalls, and access control across your infrastructure. # Project Organization Source: https://docs.monk.io/features/project-organization Cluster assignment, team secrets, and environment-scoped access control ## The Short Version You've got environments. You've got clusters. You've got teammates who shouldn't touch production. Project Organization is where those three things connect. No config files. No manual wiring. You tell Monk the rules, and it enforces them. ## Cluster Assignment Every environment maps to one cluster. That's the boundary. ``` /monk link staging to my-digitalocean-cluster /monk link prod to my-aws-cluster ``` Multiple environments can share a cluster -- Monk separates them with tags. Or give each environment its own cluster. Either way, you set it once and deployments route automatically. Change a link anytime. Existing deployments aren't affected. ## Team Secrets Secrets are environment-scoped. Staging gets its own `DATABASE_URL`. Production gets a different one. They don't leak across boundaries. ``` /monk add DATABASE_URL as a team secret for staging ``` Team secrets require two things: * An organization context * An environment linked to an org cluster Once that's in place, every org member with the right permissions sees the same secrets for that environment. Monk stores them on the cluster. ## Environment-Scoped RBAC You can lock down access per environment. A junior dev gets deploy rights to staging. Production stays off-limits. Permissions use path-based scoping: * `/environments/staging/templates/**` -- staging templates only * `/environments/*/secrets/**` -- secrets across all environments That's it. Define the role, assign it, and Monk handles enforcement. ``` /monk create a role called staging-deployer with deploy access to /environments/staging/templates/** ``` ## Putting It Together A typical setup looks like this: ``` /monk link dev to my-local-cluster /monk link staging to my-digitalocean-cluster /monk link prod to my-aws-cluster ``` Dev, staging, and prod each hit different infrastructure. Secrets stay isolated per environment. RBAC controls who can touch what. You manage the whole thing in chat or the Clusters panel. Creating, deploying, and managing environment lifecycles. RBAC roles, permissions, and audit logging. # Scaling Source: https://docs.monk.io/features/scaling Scale resources with natural language ## What It Does Monk scales your entire system — workloads and infrastructure. An algorithmic autoscaler handles workload scaling automatically. You tell Monk to scale infrastructure with plain language. That's it. Cloud Scaling ## How It Works ### Algorithmic Workload Autoscaling Monk's autoscaler manages your [containerized workloads](/features/containerization) without you lifting a finger. **What it handles:** * Horizontal scaling — adds or removes container replicas based on load * Resource-based scaling — scales on CPU and memory utilization * Automatic load balancing — distributes traffic across scaled replicas **Example:** Your API server starts with 2 replicas. Traffic spikes during peak hours. The autoscaler spins up replicas — 3, 4, 5. Traffic drops. It scales back down. You don't do anything. The autoscaler runs continuously in the background as part of orchestration. No manual intervention required as long as autoscaling rules exist in your Monk configuration. ### Infrastructure Scaling Beyond workloads, Monk scales the underlying infrastructure itself. **What Monk can scale:** * Virtual machines — add or remove VMs from your deployment * Instance sizing — change VM sizes (e.g., 2GB to 4GB RAM) * Service settings — adjust database connection pools, cache sizes, worker counts * Storage — increase disk size for databases and persistent volumes **How to trigger it:** Tell Monk what you need via chat in your [coding agent](/getting-started/get-started): ``` You: Add 2 more machines to the API cluster ``` ``` You: Scale the database instance up to 8GB RAM ``` ``` You: Increase the worker count to 5 ``` ``` You: Remove the extra VMs, traffic is back to normal ``` Monk provisions or deprovisions resources using your [cloud provider](/features/cloud-provisioning) accounts. No Terraform. No console clicking. ### Intelligent Scaling Decisions When you request infrastructure changes, Monk doesn't just execute blindly. **Instance sizing:** * Recommends appropriate VM sizes based on current usage * Suggests cost-effective alternatives * Warns about over-provisioning **Placement:** * Places new VMs in optimal regions * Co-locates with related services for low latency * Balances across availability zones when needed **Cost awareness:** * Estimates cost impact before you confirm * Suggests cheaper alternatives when possible * See [Cost Tracking](/features/cost-tracking) for real-time cost monitoring **Confirmation before changes:** ``` You: Add more machines to handle this traffic spike Monk: Current setup: 2x t3.medium instances (4 vCPU, 8GB RAM) Recommendation: Add 2x t3.medium instances New total: 4 instances Cost increase: ~$50/month Proceed? You: Yes ``` You stay in control. Monk does the heavy lifting. ### Zero-Downtime Scaling Whether it's workload autoscaling or infrastructure scaling, Monk ensures zero downtime. **Workload scaling:** * New replicas added before old ones removed * Health checks before traffic routing * Graceful shutdown of scaled-down replicas **Infrastructure scaling:** * New VMs provisioned and containers deployed before traffic shifts * [Load balancers](/features/networking) updated automatically * Old VMs drained before shutdown Proactive AI-driven scaling — autonomous 24/7 scaling, predictive patterns, cost optimization — is on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). How Monk provisions and manages your VMs Real-time cost impact of scaling decisions # Security Source: https://docs.monk.io/features/security Agentic safety and runtime security built-in ## What It Does Monk handles security at two levels: 1. **Agentic Security** -- keeps the AI agent itself safe to use 2. **Runtime Security** -- protects your deployed apps and infrastructure Both are on by default. You don't configure anything. ## Agentic Security Monk is an autonomous agent with real privileges. It provisions infrastructure, changes configs, and manages production. That demands safety mechanisms you won't find in typical AI tools. ### Secrets Never Reach the LLM Credentials are encrypted at rest on your machine and on your Monk cluster using your cloud provider's KMS. They are never sent to Monk servers and never exposed to the LLM. How it works: * Secrets are handled by deterministic tooling, not AI inference * The LLM only knows a secret exists -- it never sees the value * Secret values are never generated by the LLM ``` Typical AI agent: LLM sees: DATABASE_URL=postgresql://user:password123@host:5432/db Monk: LLM sees: DATABASE_URL=[SECRET:postgres_connection] Tooling handles: postgresql://user:password123@host:5432/db ``` ### Secrets Never Leave Your Infrastructure Where secrets live: * **Workspace/user scope** -- local secret storage in your OS keychain, encrypted at rest (macOS Keychain, Windows Credential Manager, Linux Secret Service) * **Team scope** -- on your org cluster, envelope-encrypted with your cloud provider's KMS * **Never** -- Monk servers **BYO-KMS:** Team secrets use envelope encryption with your provider's key management service -- AWS KMS, GCP Cloud KMS, Azure Key Vault, or DigitalOcean managed encryption keys. Each read uses a fresh data key. Rotation is automatic. This is part of the BYOI (Bring Your Own Infrastructure) model. Everything runs on your infrastructure, including secret management. ### Destructive Actions Require Approval Monk can't silently destroy things. Destructive actions are gated by tooling, not by AI judgment. When Monk needs to delete resources, it tells you exactly what's affected. You approve or reject. The approval flow is handled by tooling -- the AI can't be manipulated to bypass it. Protected actions include: * Deleting infrastructure resources * Removing databases or storage * Tearing down production environments * Reducing security group access ``` Monk: To complete this task, I need to delete the staging environment. This includes: - 3 VMs (total cost: $45/month) - PostgreSQL database (last backup: 2 hours ago) - 50GB storage [YES] [NO] [User must explicitly click [YES] - answer not processed by AI] ``` ### Blast Radius Awareness Monk understands what depends on what. Before making changes, it knows: * Which services break if you delete a database * Which users see downtime if you change a domain * Which services are affected by a security group change This isn't guesswork. Monk tracks your resource graph and computes impact from it. ### Restricted Capabilities Monk operates within hard boundaries. **What Monk CAN do:** * Generate and edit Containerfiles, Monk configurations * Provision cloud resources via provider APIs * Configure services via orchestrator APIs * Read code in your open workspace **What Monk CANNOT do:** * Execute arbitrary CLI commands on your machine * Make arbitrary API calls outside its tooling * Access files outside your open workspace * Bypass approval requirements for destructive actions Monk does not edit source code without your explicit approval. See [Source Code Editing](/features/code-editing) for how that works. ### Deterministic Validation Every LLM response is validated before execution: 1. LLM generates a plan and tool calls 2. Deterministic code validates the plan 3. Validation checks parameters, operation safety, and resource types 4. Only after validation do actions execute This catches malformed API calls, invalid configs, and hallucinated operations before they touch anything. ## Runtime Security Once your app is deployed, Monk locks it down automatically. ### Secret Storage and Management Credentials are encrypted at rest on your machine and on your Monk cluster using your cloud provider's KMS. They are never sent to Monk servers and never exposed to the LLM. At runtime: * Secrets are injected into containers at runtime, never baked into images * Team secrets are environment-scoped -- staging and production get separate values * Secrets are never logged or exposed in configurations See [Configuration & Wiring](/features/configuration-and-wiring) for how secrets flow through your application. ### Encrypted Networking and Segmentation All service-to-service communication is encrypted by default. Monk's overlay network spans all your infrastructure -- no manual VPN or WireGuard setup. Traffic is segmented automatically: * Services only communicate if your connection graph says they should * Lateral movement is prevented by default * See [Networking](/features/networking) for the full picture ### VM and Access Control VMs don't expose SSH ports. You manage infrastructure through Monk's orchestrator API from your coding agent. All management actions are authenticated and encrypted. ### Automatic Firewall Management Only the ports you need are open: * Public-facing services expose application ports (80, 443) * Internal services have no public ports * Inter-service communication stays on the private network * Everything else is blocked Firewall rules update automatically as services scale. New instances get correct rules immediately. Removed instances are cleaned up. ### Container Security When Monk generates Containerfiles (see [Containerization](/features/containerization)), it follows security best practices: * Non-root users in containers * Minimal base images (Alpine, distroless) * No unnecessary packages * Multi-stage builds to minimize attack surface ### Automatic IP Whitelisting When your containers connect to external services, Monk handles IP whitelisting for you. Example: your container connects to MongoDB Atlas. Monk knows the VM's IP, calls the Atlas API to whitelist it, and updates the whitelist automatically if the container moves. Same for Redis Cloud, managed databases, and any service that supports IP-based access control. ### Airgapped and Enclosed Deployment **Enclosed VPC:** Run entirely within your VPC with no internet access required (except for external APIs your app needs). Manual setup required. **Airgapped on-premises:** Run completely disconnected from the internet with all management over your local network. Manual setup required. See [Getting Help](/getting-help) for guidance on airgapped deployments. ### Ingress WAF Monk's ingress controller includes ModSecurity WAF on all clusters by default. See [Networking](/features/networking) for details. Encrypted overlay network, firewalls, and ingress configuration. Secret management, injection, and environment wiring. # Package Ecosystem Source: https://docs.monk.io/features/service-templates Pre-built, battle-tested packages — automatically adapted to your stack ## What It Does Monk's package ecosystem gives you hundreds of pre-built packages for databases, services, APIs, and infrastructure. The [orchestrator](/features/containerization) uses them to deploy resources. Monk agents use them to understand and manage everything about those resources. ## How It Works ### What Packages Contain Monk packages are comprehensive definitions. They carry everything needed to deploy and manage a service. **Deployable workloads:** * Container-based services (databases, web servers, message queues, etc.) * Configuration for running the service * Health checks and lifecycle management **Infrastructure definitions:** * Cloud resource requirements (VMs, storage, networking) * Infrastructure blueprints for optimal deployment * Multi-cloud compatibility specifications **Custom resource definitions:** * Interfaces for managing virtually any resource * Integration points for third-party services * Lifecycle hooks and operational patterns **Extensions for Monk agents:** * Service-specific behaviors and actions * Monitoring and troubleshooting capabilities * Cost estimation interfaces ### Composable by Design Packages compose other packages. That's how you build systems without reinventing anything. A web application package might compose a PostgreSQL database package, a Redis cache package, and an Nginx web server package. Each sub-package brings its own capabilities and management logic. The composed system works as a unified whole. You don't copy-paste. You compose. ### Extensible Without Duplication Want a custom PostgreSQL configuration? Override the base package. Only define what's different. Inherit everything else — container runtime setup, health checks, the works. Less repeated code. More succinct definitions. Easier to maintain. ```yaml theme={null} # Override just what you need: namespace: my-app postgresql: inherits: monk-postgresql # Base PostgreSQL package variables: max-connections: 200 shared-buffers: "2GB" ``` ### Programmable with Scripting Packages can contain arbitrary scripting for complex behaviors: * **ArrowScript** — Monk's declarative scripting language for defining service behaviors, health checks, and operational patterns inside packages. * **TypeScript framework** — For full customization and complex logic * **Custom operation patterns** — Entirely custom workflows and actions Use these for database backup automation, custom health checks, complex deployment orchestration, or service-specific management operations. ### Your Code Becomes Packages When Monk performs [code analysis](/features/code-analysis) on your application: 1. Monk packages up your services — each component becomes a package definition 2. It composes them with existing packages — your services combined with databases, caches, etc. 3. You review the resulting definition — see the full packaged system Your application gets treated the same way as pre-built packages. Same capabilities for deployment, scaling, and management. ### Content-Addressed and Immutable Security is built into the package system. * **Content-addressed** — packages identified by cryptographic hash of their contents * **Immutable** — once published, a package can't be changed * **Guarded against supply chain attacks** — tampering is prevented by design Packages are currently permissioned and vetted by the Monk team. Quality standards are enforced before publication, and community contributions are reviewed and tested. ### The Ecosystem Hundreds of packages. Databases like PostgreSQL, MySQL, MongoDB, Redis. Message queues like Kafka and RabbitMQ. Monitoring stacks, DevOps tools, CMS platforms, AI/ML runtimes, and more. See [Integrations](/integrations) for the full list. ### Open Source Contributions Many Monk packages are open source on GitHub at [monk-io](https://github.com/monk-io). You can review package definitions, submit improvements, contribute new packages, or learn from existing implementations. Popular repositories include [monk-metabase](https://github.com/monk-io/monk-metabase), [monk-prometheus-grafana](https://github.com/monk-io/monk-prometheus-grafana), [monk-ollama](https://github.com/monk-io/monk-ollama), and 100+ more. Private packages for teams — team-specific repositories, version control, access control — are on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). How the orchestrator uses packages to deploy your stack. How Monk turns your code into packages. # Slack Integration Source: https://docs.monk.io/features/slack Manage infrastructure from Slack — respond to questions, approve changes, and get alerts without opening your coding agent ## What It Does Connect Monk to your Slack workspace and it sends you questions, configuration forms, and task completion summaries directly in Slack. You respond right there — no need to open your coding agent. Monk asks in both the chat and Slack at the same time. Whichever one you respond on first wins — the other is cancelled automatically. When a task finishes, you get a summary in Slack with suggested next steps you can trigger without switching back to your agent. There are two Slack features: * **Remote Control** — two-way interactive prompts for answering questions, filling out forms, approving changes, and following up on completed tasks from Slack * **Watcher Alerts** — one-way monitoring notifications with AI-powered diagnosis and a Fix with Monk button Available on Pro and Team plans. ## Connect Slack In your coding agent: ``` /monk connect Slack ``` A browser window opens where you authorize the Monk app in your Slack workspace. You need permission to install apps in the workspace. Back in the chat, Monk shows a list of your Slack channels and DMs. Pick where you want to receive messages. You can also send to a DM with yourself for a personal notification channel. That's it. Monk confirms the connected channel, and you can check the connection state at any time by asking Monk for Slack status. ## Remote Control Once Slack is connected, Monk sends interactive messages to your Slack channel whenever it needs your input — during deployments, configuration changes, scaling, credential requests, and more. ### What you can do from Slack **Answer questions** — When Monk needs a decision ("Continue deployment to production?", "Which region?"), you get a Slack message with buttons or a text input. Tap a button or type your answer. **Fill out forms** — Configuration forms (cluster settings, watcher thresholds, service parameters) appear as interactive Slack forms. Fill them out and submit without switching back to your agent. **Approve file changes** — When Monk's code editor wants to modify files, you get an approval request in Slack listing the affected files and operations. Approve or reject with a reason. **Provide credentials** — When Monk needs cloud credentials, it notifies you in Slack. The actual credential entry happens securely on your machine, but the notification means you know to check in when you're ready. **See task results** — When Monk finishes a build, deployment, cluster operation, or other long-running task, you get a summary of what was done along with suggested next steps as clickable buttons. Tap a button to trigger the next action directly from Slack. ### Task completion notifications When Monk finishes a task that involved a build, deployment, cluster operation, CI/CD setup, or other significant work, it sends a completion summary to Slack. The notification includes Monk's summary of what was accomplished and, when available, action buttons for common follow-up steps like opening the app, checking logs, or deploying. Clicking an action button sends that prompt to Monk as a new message, and the response comes back to Slack — so you can go through an entire build-deploy-verify workflow from Slack without being at your computer. Each conversation's messages are grouped into a Slack thread, with the chat title shown at the top for easy identification. ### How it works Monk asks on all available interfaces simultaneously — the chat and Slack. The first response wins. If you answer in Slack, the chat prompt is dismissed. If you answer in the chat, the Slack message is updated to show it was handled. This means you can start a long-running operation, close your laptop, and handle the next decision from your phone when the Slack notification arrives. ### Example flow 1. You tell Monk to deploy your project and close your laptop 2. Monk provisions infrastructure, builds containers, and hits a decision point — "The deployment needs a database. Set up PostgreSQL?" 3. A Slack message arrives on your phone with **Yes** and **No** buttons 4. You tap **Yes** 5. Monk finishes deploying and sends a summary to Slack: "Deployed to production. All 3 workloads healthy." with buttons like **Open the app** and **Check logs** 6. You tap **Check logs** and the log output appears in Slack ## Watcher Alerts [Watcher](/features/watcher) monitors your cluster 24/7 and sends one-way alert notifications to Slack when something goes wrong — crashes, CPU spikes, disk pressure, health check failures. Watcher alerts use a separate Slack webhook (not the relay connection). During [Watcher setup](/prompting/watcher-setup), Monk offers to configure Slack alerts. If you accept, it opens a quick OAuth flow where you authorize an Incoming Webhook and pick a channel. Monk handles the entire setup — no manual webhook URLs needed. Each alert includes: * AI-powered diagnosis explaining what happened and why * Severity level and affected service * A **Fix with Monk** button that opens your coding agent with full context See [Watcher](/features/watcher) for configuration options and alert format details. ## Managing the Connection ### Change channel Ask Monk to change the Slack channel and pick a different one from the list. ### Disconnect Ask Monk to disconnect Slack. This clears the connection on your side but does not uninstall the Monk app from your Slack workspace. ### Reconnect If the connection drops (network issues, restarts), Monk reconnects automatically. You can also ask Monk to reconnect Slack. ### Connection status Ask Monk for Slack status at any time to see whether the connection is active. ## FAQ No. Slack is optional. Without it, Monk asks all questions in the chat. Slack just gives you a second interface so you can respond when you're away from your computer. The first response wins. If someone answers in Slack and someone else answers in the chat, whichever comes first is used. The other is cancelled. No. Remote control uses a persistent WebSocket connection through the Monk relay service. Watcher alerts use a standard Slack Incoming Webhook. They're configured separately and can go to different channels. The app needs permission to post messages and read channel lists in your workspace. It uses Slack's Socket Mode — no public URLs or firewall changes needed on your side. 24/7 cluster monitoring with AI-powered Slack alerts Step-by-step setup including Slack alert configuration # Team Analytics & Reporting Source: https://docs.monk.io/features/team-analytics Usage metrics and cost allocation Team Analytics is on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). ## What It Does You'll get a clear picture of who's deploying what, how often, and what it costs. No spreadsheets, no guesswork. ## Planned Capabilities **Usage Metrics** — Deployment frequency, success/failure rates, and average deploy time per team member and project. **Cost Allocation** — Breakdowns by project, team, and environment. Per-developer resource usage. Trends and budget alerts. **Performance Tracking** — Error rates, debugging time, infrastructure metrics, and bottleneck identification. **Custom Reporting** — Filter by project, environment, or team member. Pick a time range. Export when you need to. Real-time infrastructure costs, available now. Audit logs give you activity data today. # Team Collaboration Source: https://docs.monk.io/features/team-collaboration Shared workspaces and collaborative infrastructure management ## What It Does Team Collaboration lets your team share infrastructure under one organization. Invite members, assign roles, link clusters, share secrets, control access with RBAC. That's it. Organization and cluster management live in the [Monk dashboard](https://monk.io/dashboard). Day-to-day ops, secrets, and RBAC work through chat. ## How to Create an Organization Go to [monk.io/dashboard](https://monk.io/dashboard) and sign in. In the Account section, next to Personal, click the drop-down icon. A window titled Select Monk Plan/Context appears. Pick Create a New Organization. Type a name and press Enter. You'll be redirected to monk.io. Choose the number of seats, then click Continue to Checkout. Purchase your subscription to finalize the organization. After checkout, you're redirected back. Your organization is ready. Billing is per-seat. The monthly cost adjusts as you add or remove seats. ## How to Access **Organization panel:** Open the [Monk dashboard](https://monk.io/dashboard) and click the org/team button. **Clusters panel:** Open the [Monk dashboard](https://monk.io/dashboard) and click the clusters button. Monk Team Features Management ## How It Works ### Managing Organizations The Organization panel shows your org overview (plan, tokens, seats), members, pending invites, RBAC roles, cluster policies, environments, projects, and activity logs. Use the org selector at the top to switch between personal and organization contexts. ### Inviting Team Members Click the Manage button under the Account section. In the Organization Management panel, go to the Invite section. Enter the user's email and click Invite. Invite new member to organization The invited user gets an email. They click Accept Invitation and they're in. Accept invite to organization ### Member Roles Three base roles: owner, admin, and member. * **Owner:** Full control over everything — settings, membership, clusters, environments, projects. * **Admin:** Can manage members (except owners), clusters, environments, and RBAC. * **Member:** Can deploy and create/delete clusters based on org policies. * **Custom:** A role you define with specific permissions (e.g., QA Tester). Owners can change roles and remove anyone. Admins can remove members but not owners. ### RBAC RBAC builds on the base roles. You create custom roles with fine-grained permissions scoped to templates, secrets, clusters, projects, environments, and audit logs. Permissions can target specific environments. **In the UI:** Click **Manage Roles** in the Organization panel. Monk Roles Management **Via chat:** ``` /monk create a role called staging-deployer with deploy access to /environments/staging/templates/** ``` > Full details in [Access Control & Security](/features/access-control). ### Custom Instructions You can define custom instructions at three levels: organization, project, and environment. These tell Monk's agents how to behave — what to deploy, what to avoid, what defaults to use. Monk Custom Instructions Team Feature Set instructions like "don't spawn large instances" or "always use this database provider." They apply automatically to every agent action within that scope. > Full details in [Custom Knowledge](/features/custom-knowledge). ### Cluster Management The Cluster Management menu lets you view and manage active clusters in your org. **In the UI:** * View cluster status (active, personal, organization) * See linked environments and projects * Actions: Add Member to Team, Switch Between Clusters, Link Cluster to Environment, Exit Cluster, Delete Cluster Switch and Exit connect or disconnect your local machine from a cluster. Add Member to Team assigns a personal cluster to your organization. Monk Team Feature Cluster Management **Via chat:** All cluster actions work through natural language. Monk Cluster Management via Chat Personal clusters can be added to an organization via "Add to Team." This transfers ownership and applies your org's RBAC policies. ### Environments Manage environments across your organization — view linked projects and clusters, set per-environment instructions, delete what you don't need. Monk supports both cloud and on-premises environments. Monk Team Feature Environment Management > Full details in [Multiple Environments](/features/environments). ### Workspaces View all shared workspaces in your org. See which project each workspace belongs to, check its status, assign workspaces to projects, or delete them. Monk Team Feature Workspace Management ### Projects Owners and admins can share projects with the team. Set custom instructions per project. No limit on shared projects. The status view shows linked environments, clusters, and workspaces at a glance. Monk Team Feature Projects Management > Full details in [Project Organization](/features/project-organization). ### Access Policies Configure policies in the Organization panel under Cluster Policies: * **Create policy:** Controls who can create or add clusters. * **Default delete policy:** Applies to newly created clusters. Per-cluster delete policies can be adjusted from each cluster card in the Clusters panel. ### Shared Secrets Secrets can be scoped to workspace, user, or team. Team secrets require an organization context and an environment linked to an org cluster. In chat: ``` /monk add my-api-key as a team secret ``` Team secrets live on the cluster and are available to all org members with the right permissions. ### Audit Log The audit log records org actions: builds, deployments, cluster operations, secret changes. View recent events in the Activity panel of the dashboard. Owners and admins see team-wide activity; members see their own. View Logs > See [Access Control & Security](/features/access-control) for more on audit logging. RBAC, audit logging, and runtime security enforcement. Environments, clusters, workspaces, and team secrets. # Updates & Maintenance Source: https://docs.monk.io/features/updates-and-maintenance Seamless updates with automatic health checks and rollbacks ## What It Does Tell Monk to deploy. Or push to git if you've [set up CI/CD](/features/build-and-cicd). Monk handles the rest — deployment, health checks, rollback if anything breaks. Infrastructure changes, workload changes, API configurations, dependency upgrades — all applied automatically. ## How Updates Work ### Method 1: Direct Deployment Tell Monk what you want: ``` You: Deploy the latest changes ``` Monk detects what changed, updates containers, applies new config, and verifies everything works. ### Method 2: Automatic via CI/CD If you've [set up CI/CD](/features/build-and-cicd): 1. Push changes to your repository 2. CI pipeline triggers automatically 3. Monk deploys to production 4. Health checks verify the deployment That's it. ### What Gets Updated On every deploy, Monk handles: **Application** — code changes, environment variables, container images, resource allocation (memory, CPU). **Infrastructure** — new services added, removed services cleaned up, network routing updated, firewall rules adjusted. **API configuration** — webhook URLs (Stripe, Auth0, etc.), OAuth callbacks, third-party API resources. See [APIs](/features/apis). **Dependencies** — databases, caches, queues, and other supporting services upgraded to latest stable versions from the [package ecosystem](/features/service-templates). Data preserved. All applied with zero downtime. ## Health Checks & Rollback Monk doesn't consider a deployment done until it's verified. **During rollout:** * New containers must start successfully * Services must respond to health endpoints * Database connections must establish * All dependencies must be reachable * Traffic shifts gradually to the new version * Old version stays live during transition **If something fails:** Monk reverts automatically. No manual intervention. The old version keeps running. You get notified. ### Manual Rollback Keep your app and Monk config in git. Rolling back is straightforward: 1. Check out a previous commit: `git checkout ` 2. Tell Monk: `deploy this version` 3. Done — application, containers, infrastructure, service wiring all rolled back With CI/CD, just push the previous commit. The pipeline handles it. Monk treats your git history as your deployment history. Any commit can be deployed. ## OS & Runtime Updates Automatic OS and runtime updates — rolling VM patches, security updates, orchestrator self-updates — are on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). Automatic deployments on every push. Health checks, alerts, and validation. # Watcher Source: https://docs.monk.io/features/watcher 24/7 autonomous cluster monitoring with AI-powered alerts ## What It Does Watcher runs on your cluster 24/7. It catches crashes, resource spikes, and health check failures. When something breaks, it figures out why and sends you a Slack alert with a diagnosis and a fix button. That's it. No dashboards to babysit, no runbooks to follow, no pager rotation. Available on Pro and Team plans. ## Setup Tell Monk to set up Watcher: ``` /monk set up watcher ``` You'll get a configuration form with sensible defaults. Tweak thresholds if you want, or just click **Deploy Watcher**. You can also say "configure watcher", "enable watcher", or "set up cluster monitoring." **You need:** * An active cluster with at least one non-local node * A Slack workspace (optional — Watcher works without it, but you won't get push notifications) ## How It Works Watcher deploys two components to your cluster: 1. **watcher-agent** — polls your nodes and workloads, collects metrics, spots problems 2. **watcher-ai** — analyzes what went wrong, writes recommendations, fires Slack alerts Here's the flow when something breaks: 1. **Detect.** Continuous polling catches a threshold breach, crash loop, resource contention, excessive logs, or infrastructure instability. 2. **Analyze.** AI reads the logs, metrics, and context. It figures out what happened and why. 3. **Alert.** You get a Slack message with the diagnosis, severity, and a recommended fix. 4. **Fix.** Click **Fix with Monk** in the alert. Monk opens a chat session preloaded with full context and starts remediation. 5. **Recover.** When the issue clears, you get a recovery notification. Every action is documented. You always know what happened. Watcher CPU notification Slack alert ## Slack Alerts During setup, Monk asks if you want Slack alerts. Say yes and Monk opens a quick OAuth flow — you authorize in Slack, pick a channel, and you're done. No manual webhook URLs needed. Skip Slack if you want. Watcher still monitors everything — you just won't get push notifications. Watcher alerts are separate from the [Slack remote control](/features/slack) feature. Alerts are one-way notifications. Remote control is two-way interactive prompts for questions, forms, and approvals. ## Slack Alert Format **Issue detected:** ``` ⚠️ AI Assessment Sustained high CPU usage on api-server is driving node CPU to ~80%+, with repeated warnings but no crashes yet. Recommendation: Confirm this is a true capacity issue rather than a transient spike by continuing to monitor CPU usage. If sustained, increase CPU resources or scale horizontally. Target: api-server Severity: warning [Fix with Monk] ``` **Recovery:** ``` ✅ AI Assessment Recovery: CPU usage has normalized to ~78%, with workloads running normally and no new errors. Recommendation: Keep current configuration but continue to observe. ``` ## Fix with Monk Button Every alert includes a **Fix with Monk** button. Click it and: 1. Your coding agent opens with Monk ready 2. The chat panel loads with full context — affected workload, logs, metrics, AI diagnosis 3. You tell Monk to fix it. It already knows what's wrong. ## Watcher Credits Watcher is available on Pro and Team plans, and it's the only part of Monk that consumes watcher credits. Each account starts with 50 watcher credits from the free trial. Deploying, chatting with Monk, and the Monk plugin's everyday operations do not use watcher credits - only Watcher's monitoring, diagnosis, and repair cycles do. For current pricing, visit [Monk Pricing](https://monk.io/pricing). ## Configuration Options The setup form has four sections: ### Crash Detection * **Crash Threshold:** Restarts within the window to trigger an alert (default: 3) * **Crash Window:** Time window for counting restarts (default: 5 minutes) * **Health Check Failures:** Consecutive liveness failures before alerting (default: 3) ### Peer Thresholds (Cluster Nodes) * **CPU %:** Usage threshold (default: 80%) * **CPU Duration:** Sustained time before alerting (default: 5 minutes) * **Memory %:** Usage threshold (default: 80%) * **Memory Duration:** Sustained time before alerting (default: 5 minutes) * **Disk %:** Usage threshold (default: 85%) * **Disk Breaches:** Consecutive polls above threshold before alerting (default: 2) ### Workload Thresholds (Running Services) * **CPU %:** Usage threshold (default: 80%) * **CPU Duration:** Sustained time before alerting (default: 5 minutes) * **Memory %:** Usage threshold (default: 80%) * **Memory Duration:** Sustained time before alerting (default: 5 minutes) * **Disk %:** Usage threshold (default: 90%) * **Disk Breaches:** Consecutive polls above threshold before alerting (default: 3) ### Advanced Settings Toggle "Show Advanced Options" to access: * **Poll Interval:** How often to check cluster health (default: 15 seconds) * **AI Only Slack:** Only send AI-analyzed alerts to Slack, cuts noise (default: on) * **Enable Fix with Monk:** Include debugging links in Slack alerts (default: on) * **Ignore Local Peer:** Skip local node checks, focus on remote peers (default: on) * **Context TTL:** How long to keep alert context for debugging links (default: 24 hours) * **Reassess Interval:** How often to re-evaluate ongoing issues (default: 15 minutes) * **Log Lines:** Number of log lines to analyze per workload (default: 100) Watcher configuration ## Managing Watcher **Check status:** ``` /monk is watcher running? ``` **Reconfigure:** ``` /monk set up watcher ``` **View logs:** ``` /monk show logs from system/watcher-agent ``` Autonomous auto-fixes — automatic restart, auto-scaling, smart rollback — are on the roadmap. [Vote on what to prioritize](https://monk.io/roadmap). Log streaming, metrics, and troubleshooting from your coding agent. Scale resources when Watcher detects sustained pressure. # Workload Migration Source: https://docs.monk.io/features/workload-migration Seamless cross-cloud application migration ## What It Does Running on AWS but want to switch to DigitalOcean? On GCP but need to move to Azure? Tell Monk to migrate your application. It handles the rest. ## How It Works ### The Migration Process **Starting point:** * Your application is running on Cloud A (e.g., AWS) * Managed by Monk **Migration steps:** ### 1. Request Migration Chat with Monk in your [coding agent](/getting-started/get-started): ``` You: Migrate this application to DigitalOcean ``` ### 2. Provide Credentials Monk asks for credentials to the target cloud provider: ``` Monk: I'll need DigitalOcean credentials to provision resources. Please provide your DigitalOcean API token. You: [Provides token] Monk: Credentials received. Analyzing current deployment... ``` Credentials are encrypted at rest on your machine and on your Monk cluster using your cloud provider's KMS. They are never sent to Monk servers and never exposed to the LLM. Monk needs these because everything runs on **your infrastructure** (Bring Your Own Infrastructure - BYOI). See [Security](/features/security) for details. ### 3. Resource Provisioning Monk provisions matching resources on the target cloud: ``` Monk: Current AWS infrastructure: - 2x t3.medium instances (API servers) - 2x t3.small instances (workers) - Application Load Balancer - VPC with security groups Monk: Creating equivalent DigitalOcean resources: - 2x 2GB Droplets (API servers) - 2x 1GB Droplets (workers) - Load Balancer - VPC with firewall rules ``` Monk creates infrastructure that matches your current deployment, optimized for the target cloud's instance types and services. ### 4. Workload Transfer Monk starts your application on the new cloud and stops it on the old one. **What gets migrated:** * [Containerized services](/features/containerization) - API servers, workers, background jobs * Application code and [configuration](/features/configuration-and-wiring) * [Container images](/features/containerization) - pushed to registry on new cloud * [Networking configuration](/features/networking) - VPCs, security groups, load balancers * External service connections - [APIs](/features/apis), [databases](/features/databases), [essential services](/features/essential-services) **Data migration is not yet supported.** Monk migrates workloads (containers, configuration, networking) but not database data. Managed services (RDS, Cloud SQL, etc.) remain on the original cloud. Self-hosted databases stay on original infrastructure. Your migrated application connects back to databases on the original cloud. Full data migration is coming soon. ### 5. DNS Switchover If you're using a DNS provider (Route 53, Cloudflare DNS, etc.): * Monk automatically updates DNS records to point to new infrastructure * Traffic seamlessly shifts to new cloud * Old workloads receive no new requests If you're not using DNS managed by Monk: * Monk provides new IP addresses/URLs * You manually update DNS or load balancer configuration ### 6. Cleanup After verifying everything works on the new cloud: ``` You: Delete the old AWS resources Monk: Confirming: Delete all AWS resources for this application? - 4 instances - Load balancer - VPC and security groups You: Yes Monk: Deleting AWS resources... Done. Migration finished. Running entirely on DigitalOcean. ``` That's it. Your application is now running on the new cloud provider. ## Why Migrate? **Cost savings:** * Move from an expensive cloud to a cheaper alternative * Switching providers often yields significant savings on compute costs **Better services:** * Access provider-specific features (AWS SageMaker, Azure OpenAI, GCP BigQuery) * Use specialized hosting (Netlify, Vercel for frontends) **Geographic expansion:** * Add regions available on other cloud providers * Better latency for global users **Vendor diversification:** * Reduce dependency on a single cloud provider * Increase resilience with multi-cloud architecture **Compliance:** * Meet data residency requirements in specific regions * Switch to providers with required certifications Workload migration inside cluster example ## Related Features Deploy and manage workloads across multiple clouds at once. How your credentials and data are protected during migration. # Getting Help & Support Source: https://docs.monk.io/getting-help How to get help, report bugs, request features, and connect with the Monk community ## Ways to Get Help Monk provides multiple channels for getting assistance, reporting issues, and connecting with the community. ## Ask Monk Directly The fastest way to get help is to **ask Monk directly** through your coding agent: 1. Open the coding agent where the Monk plugin is installed 2. Describe your issue or ask your question 3. Monk will guide you through troubleshooting or take action to resolve the problem **Example questions:** * "Why is my deployment failing?" * "How do I add a Redis cache to my app?" * "Can you show me the logs for my API service?" * "How much is my infrastructure costing?" Monk has context about your code, infrastructure, and deployment state, making it the most effective first point of contact. ## Report Bugs Through Chat Monk has a **built-in bug reporting feature** that makes it easy to report issues without leaving your coding agent. ### How to Report a Bug Describe the issue right in the chat: ``` /monk report a bug ``` **What happens when you report a bug:** 1. **Automatic context gathering** — Monk collects relevant information about your environment, deployment state, and the issue 2. **Direct submission** — Your report goes directly to the Monk engineering team 3. **Follow-up** — You'll receive updates on the issue status Monk can also file reports on its own when it runs into a problem. ## Report Bugs from the Dashboard In the [Monk dashboard](https://monk.io/dashboard), click the **bug icon in the top-right corner**, pick Bug, Feature, or Other, and describe the issue. The more detail you provide, the faster we can diagnose and fix the issue. Include steps to reproduce if possible. ## Request Features Have an idea for a new feature or improvement? ### Through Chat Use the same bug reporting flow to submit feature requests. Just describe what you'd like to see added to Monk. ### Community Forum Visit the Monk community forum to: * Submit new feature ideas * Vote on existing requests * See what's planned for upcoming releases * Track bug reports and their status **[Visit Community Forum](https://roadmap.monk.io/)** ## Community & Forums ### Monk Community Forum Join the Monk community forum for: * **Feature requests** — Submit and vote on new features * **Bug reports** — Report issues and track their status * **Product roadmap** — See what's planned and in progress * **Community discussions** — Connect with other Monk users * **Feedback and ideas** — Share your thoughts on Monk **[Visit Community Forum](https://roadmap.monk.io/)** ## Documentation ### Search the Docs Our documentation covers all of Monk's features and capabilities: * [Getting Started](/getting-started/what-is-monk) — Installation and first deployment * [Features](/features) — Complete feature reference * [Prompting Cookbook](/prompting/how-prompting-works) — Task-focused guides * [FAQ](/faq) — Frequently asked questions ### Video Tutorials Watch video tutorials on our YouTube channel: **[Monk on YouTube](https://youtube.com/@monk_io)** ## Direct Support ### Email Support For account issues, billing questions, or private support inquiries: **[hi@monk.io](mailto:hi@monk.io)** *** Start by asking Monk directly through your coding agent. Monk has full context about your project and can help troubleshoot or point you to the right resources. # Autonomous Operations Source: https://docs.monk.io/getting-started/autonomous-operations What Monk does for you after the first deployment Your app is deployed. Now what? Monk does not stop at deployment — it keeps your system running, watches for problems, and gives you instant visibility into everything that is happening. This page covers what you can set up on day two and what keeps working on day two hundred. Everything here can be done through your coding agent. Just ask.