Cline is evolving! Originally a VSCode extension leveraging agentic AI for complex development tasks, this project now aims to transform Cline into a standalone agent, freeing it from the VSCode environment. The goal is to create an independent AI assistant capable of using CLI tools, editing files, browsing the web, and extending its own capabilities via the Model Context Protocol (MCP), all without relying on a specific editor integration.
- Enter your task and add images to convert mockups into functional apps or fix bugs with screenshots.
- Cline starts by analyzing your file structure & source code ASTs, running regex searches, and reading relevant files to get up to speed in existing projects. By carefully managing what information is added to context, Cline can provide valuable assistance even for large, complex projects without overwhelming the context window.
- Once Cline has the information he needs, he can:
- Create and edit files + monitor linter/compiler errors along the way, letting him proactively fix issues like missing imports and syntax errors on his own.
- Execute commands directly in your terminal and monitor their output as he works, letting him e.g., react to dev server issues after editing a file.
- For web development tasks, Cline can launch the site in a headless browser, click, type, scroll, and capture screenshots + console logs, allowing him to fix runtime errors and visual bugs.
- When a task is completed, Cline will present the result to you.
Cline supports API providers like OpenRouter, Anthropic, OpenAI, Google Gemini, AWS Bedrock, Azure, and GCP Vertex. You can also configure any OpenAI compatible API, or use a local model through LM Studio/Ollama. When using OpenRouter, Cline fetches their latest model list, allowing you to use the newest models as soon as they're available.
Cline also keeps track of total tokens and API usage cost for the entire task loop and individual requests, keeping you informed of spend every step of the way.
Cline can execute commands directly in your terminal and receive the output. This allows him to perform a wide range of tasks, from installing packages and running build scripts to deploying applications, managing databases, and executing tests, all while adapting to your dev environment & toolchain to get the job done right.
For long-running processes like dev servers, Cline can monitor the output and react to issues that may come up, such as compile-time errors when editing files, while continuing with other parts of the task.
Cline can create and edit files directly on your filesystem. It monitors for potential issues like linter or compiler errors (e.g., missing imports, syntax errors) and attempts to fix them proactively as it works. You maintain control and can review changes before they are finalized.
With Claude 3.5 Sonnet's new Computer Use capability, Cline can launch a browser, click elements, type text, and scroll, capturing screenshots and console logs at each step. This allows for interactive debugging, end-to-end testing, and even general web use! This gives him autonomy to fixing visual bugs and runtime issues without you needing to handhold and copy-pasting error logs yourself.
Try asking Cline to "test the app", and watch as he runs a command like npm run dev, launches your locally running dev server in a browser, and performs a series of tests to confirm that everything works. See a demo here.
Thanks to the Model Context Protocol, Cline can extend his capabilities through custom tools. While you can use community-made servers, Cline can instead create and install tools tailored to your specific workflow. Just ask Cline to "add a tool" and he will handle everything, from creating a new MCP server to making it available. These custom tools then become part of Cline's toolkit, ready to use in future tasks.
- "add a tool that fetches Jira tickets": Retrieve ticket ACs and put Cline to work
- "add a tool that manages AWS EC2s": Check server metrics and scale instances up or down
- "add a tool that pulls the latest PagerDuty incidents": Fetch details and ask Cline to fix bugs
Provide context to Cline to improve task understanding:
URLs: Provide URLs for Cline to fetch and analyze content, useful for referencing documentation or web pages.
Files: Include the contents of specific files directly in your request.
Folders: Reference entire folders to give Cline a broader understanding of the project structure and content.
To contribute to the project, start with our Contributing Guide to learn the basics. You can also join our Discord to chat with other contributors in the #contributors channel. If you're looking for full-time work, check out our open positions on our careers page!
Creating a Pull Request
-
Before creating a PR, generate a changeset entry:
npm run changeset
This will prompt you for:
- Type of change (major, minor, patch)
major→ breaking changes (1.0.0 → 2.0.0)minor→ new features (1.0.0 → 1.1.0)patch→ bug fixes (1.0.0 → 1.0.1)
- Description of your changes
- Type of change (major, minor, patch)
-
Commit your changes and the generated
.changesetfile -
Push your branch and create a PR on GitHub. Our CI will:
- Run tests and checks
- Changesetbot will create a comment showing the version impact
- When merged to main, changesetbot will create a Version Packages PR
- When the Version Packages PR is merged, a new release will be published