Technical FAQ
How does Monk understand my codebase?
Monk analyzes your project structure, files, and code relationships to build a semantic understanding of your codebase. It uses static analysis and AI-powered code understanding to interpret code meaning and context. It does not go into details about the code, but rather uses the code to understand the overall architecture and design of your application. This allows it to generate appropriate configurations and deployment plans.
What AI models power Monk?
Monk uses LLMs hosted by Azure and OpenAI.
Can Monk run or execute my code?
Yes, Monk can run your code in containerized environments. It uses its underlying engine with Podman to:
- Start projects locally on your machine
- Deploy to cloud or serverless providers
- Restart projects if they crash
- Monitor logs and project health
How does Monk handle dependencies and imports?
Monk identifies dependencies and imports in your code to build a complete picture of your project, including:
- Package dependencies from package.json, requirements.txt, etc.
- Import statements and module relationships
- Type definitions and interfaces
- Required runtime dependencies (like databases)
How does Monk’s architecture work?
Monk has a distributed architecture with:
- Local Components: VSCode extension, conversational agent, Monk CLI, daemon, and Podman
- Remote Components: Multi-agent analysis system running on monk.io servers
- Optional Cluster: For deploying workloads
This architecture ensures sensitive operations happen locally while leveraging cloud resources for analysis tasks.
What files does Monk generate?
After analyzing your project, Monk typically creates:
- MANIFEST file: Lists created files and Monk metadata
- YAML file: Contains deployment configuration, see MonkScript for more details
- Dockerfiles: For containerized components
How does Monk deploy applications?
Monk can deploy your applications in several ways:
- Locally on your machine using Podman (similar to docker-compose)
- To cloud providers through the Monk daemon
- To serverless platforms when appropriate
- Hybrid deployments that combine the above
What happens if Monk can’t understand my query?
If Monk can’t understand your query, it will:
- Ask for clarification
- Request additional context if needed
- Suggest alternative ways to phrase your question
- Provide partial answers based on what it does understand
How do I optimize my prompts for better results?
See our prompting techniques guide.
How does Monk handle security?
Monk follows these security principles:
- Sensitive operations happen locally
- Containers are built locally
- Secrets are generated and stored locally, and in your cluster encrypted at rest
- The AI component never exposes or generates secrets
Monk does not prevent you from exposing secrets in your codebase or in your prompts. It is your responsibility to ensure that your codebase and prompts are secure.
How secure are deployments made by Monk?
Monk inherits its security model from MonkOS, the underlying orchestration engine. Some key features include:
- Automatic VPC configuration
- Automatic network segmentation
- Encrypted traffic between nodes (via wireguard)
- Secrets encrypted at rest via cloud KMS with key rotation per secret
- SSH disabled on all nodes by default
- Pre-packaged failsafe configurations for frequently used packages
- Immutable, content-addressed package sourcing
Additionally, Monk is aware of best practices and strives to configure your application in the most optimal way possible, taking care to lock down unauthenticated endpoints, pick correct file permissions, etc.
Nevertheless, even though Monk and MonkOS are designed to be secure, you should always review the generated configurations and make sure they are correct for your application and security needs.
What is Monk CLI for?
Monk uses its CLI to control the underlying orchestrator, MonkOS. The CLI provides comprehensive commands for:
- Template management
- Workload deployment and control
- Container interaction
- Cluster management
- Secret management
- Cloud provider integration
You can use this CLI directly to manage your deployments. For a complete reference, see the CLI Reference documentation.
Can Monk work offline?
Monk’s architecture requires both local and cloud components to function fully. While the AI-powered analysis and assistance require connection to monk.io servers, the local runtime components can operate independently.
What happens when Monk AI is not available?
Even if Monk’s AI components are not available:
- You keep your deployment configuration, Dockerfiles, etc.
- Your deployed workloads continue running normally
- The Monk CLI and daemon remain functional for managing existing deployments
- Container orchestration, monitoring, and scaling continue to work
- You can still use all the deployment and management capabilities of MonkOS manually
Only the AI-powered code analysis and assistance features require the AI components to be available.
How is Monk context aware and extendable?
Monk’s context awareness means it can understand and adapt to your environment, preferences, and capabilities in real-time. It keeps both your application’s code AND its runtime state in context, allowing it to understand not just what your application is but also how each component and runtime dependency behaves in motion.
As an extendable system, Monk continually learns how to interpret and understand new components in depth from a growing catalog of packages, expanding its capabilities over time.
How does Monk execute tasks?
Context awareness is just the beginning. Monk can act on what it knows, performing operations independently instead of merely describing processes or instructing you to run commands.
Monk has built-in knowledge of common development and deployment tasks, allowing it to handle operations directly without requiring you to translate instructions into commands.
What makes Monk deterministic?
While Monk uses AI to plan and reason, the actual tasks are run by a deterministic execution engine. This engine constrains the AI, enforces policies, and validates each step before execution.
Instead of running arbitrary commands at will, Monk operates on a dynamic set of tools provided by the execution layer. The scope of what it can and cannot do is extensible through packages, ensuring that it not only understands and executes tasks but also avoids common mistakes.
What’s being installed with Monk?
When you install the Monk VS Code extension, the following components are installed:
- The extension itself
- Monk CLI and Daemon
- Podman (if it’s not already installed)
- On Windows only: WSL2 Ubuntu 24.04 (if it’s not already installed)
Monk requires its CLI and Daemon to be installed on your system in order to run your projects and manage your infrastructure. Podman is used to run the containers Monk creates locally for development and testing.
This is a one-time installation, as all components are self-updating.
For more details on how these components interact, refer to the Architecture documentation.
How do I uninstall Monk?
To fully uninstall Monk:
- Uninstall the VSCode Extension
- Uninstall Monk CLI and Daemon using
brew uninstall monk
orapt remove monk monkd
depending on your system (use WSL2 on Windows) - Optionally remove
~/.monk
and/var/lib/monkd
(only on Linux and WSL)
Is there an API for Monk?
Not at the moment.