Thanks to Claude 3.5 Sonnet's agentic coding capabilities Claude Dev can handle complex software development tasks step-by-step. With tools that let him create & edit files, analyze project source code, and execute terminal commands (after you grant permission), he can assist you in ways that go beyond simple code completion or tech support. From building software projects to running system operations, Claude Dev is only limited by your imagination.
While autonomous AI scripts traditionally run in sandboxed environments, Claude Dev provides a human-in-the-loop GUI to supervise every file changed and command executed, providing a safe and accessible way to explore the potential of agentic AI.
- Inspect diffs of every change Claude makes right in the editor, and keep track with syntax highlighted previews in chat
- Runs CLI commands directly in chat, so you never have to open a terminal yourself (+ respond to interactive commands by sending a message)
- Presents permission buttons (i.e. 'Approve CLI command') before tool use or sending information to the API
- Keep track of total tokens and API usage cost for the entire task loop and individual requests
- Set a maximum # of API requests allowed for a task before being prompted for permission to proceed
- When a task is completed, Claude determines if he can present the result to you with a CLI command like
open -a "Google Chrome" index.html
, which you run with a click of a button
Pro tip: Use the Cmd + Shift + P
shortcut to open the command palette and type Claude Dev: Open In New Tab
to start a new task right in your editor.
Claude Dev uses an agentic loop style implementation with chain-of-thought prompting and access to powerful tools that give him the ability to accomplish nearly any task. Start by providing a task and the agentic loop fires off, where it might use certain tools (with your permission) to accomplish each step in its thought process.
Claude Dev has access to the following capabilities:
execute_command
: Execute CLI commands on the system (only with your permission, output is streamed into the chat and you can respond to stdin or exit long-running processes when you're ready)list_files_top_level
: List all paths for files at the top level of the specified directory (useful for generic file operations like retrieving a file from your Desktop)list_files_recursive
: List all paths for files in the specified directory and nested subdirectories (excludes files in .gitignore)view_source_code_definitions_top_level
: Parses all source code files at the top level of the specified directory to extract names of key elements like classes and functions (see more below)read_file
: Read the contents of a file at the specified pathwrite_to_file
: Write content to a file at the specified path, automatically creating any necessary directoriesask_followup_question
: Ask the user a question to gather additional information needed to complete a task (due to the autonomous nature of the program, this isn't a typical chatbot–Claude Dev must explicitly interrupt his task loop to ask for more information)attempt_completion
: Present the result to the user after completing a task, potentially with a CLI command to kickoff a demonstration
Developers tend to name directories, files, classes, functions, and other components in ways that reflect their purpose and role within the larger system. These names often encapsulate high-level concepts and relationships that are crucial for understanding a project's overall architecture.
Claude Dev leverages the fact that large language models are fundamentally built on natural language processing, and by focusing on these named elements we provide the LLM with a structural understanding of the codebase that aligns closely with how developers conceptualize and organize their code. By effectively extracting the "language" of the codebase, we enable the LLM to grasp structure and intent without wasting context on implementation details.
-
File Structure: Claude first uses the
list_files_recursive
tool to get a complete picture of the project's file structure. It turns out Claude 3.5 Sonnet is really good at inferring what it needs to process further just from these file names alone. -
High-Level Code Overview: Claude may then use the
view_source_code_definitions_top_level
tool on specific directories of interest. This tool uses tree-sitter to parse source code with custom tag queries that extract names of classes, functions, methods, and other definitions.view_source_code_definitions_top_level
works by first identifying source code files that tree-sitter can parse (currently supportspython
,javascript
,typescript
,ruby
,go
,java
,php
,rust
,c
,c++
,c#
,swift
), then parsing each file into an abstract syntax tree, and finally applying a language-specific query to extract definition names (you can see the exact query used for each language insrc/parse-source-code/queries
). The results are formatted into a concise & readable output that Claude can easily interpret to quickly understand the code's structure and purpose. -
Read Relevant Files: With the insights gained from the project file structure and high-level code overview, Claude can then use the
read_file
tool to examine specific files that are most relevant to the task at hand.
By carefully managing what information is added to context, Claude can provide valuable assistance even for complex, large-scale projects without overwhelming its context window (200k tokens, translating to roughly 150k words or about 500 pages of a typical book).
Claude always asks for your permission first before any tools are executed or information is sent back to the API. This puts you in control of this agentic loop, every step of the way.
Feel free to contribute to this project by submitting issues and pull requests. Contributions are welcome and appreciated! To build Claude Dev locally, follow these steps:
- Clone the repository:
git clone https://github.com/saoudrizwan/claude-dev.git
- Open the project in VSCode:
code claude-dev
- Install the necessary dependencies for the extension and webview-gui:
npm run install:all
- Launch by pressing
F5
to open a new VSCode window with the extension loaded
- "Claude Sonnet 3.5 Artifacts in VSCode With This Extension" by CoderOne
- "Meet Claude Dev — An Open-Source AI Programmer In VS Code" and "Build games with zero code using Claude Dev in VS Code by Jim Clyde Monge
- "AI Development with Claude Dev" by Shannon Lal
- "Code Smarter with Claude Dev: An AI Programmer for Your Projects" by Iana D.
- Claude Dev also hit top 10 posts of all time on r/ClaudeAI (thank you for all the lovely comments)
This project is licensed under the MIT License. See the LICENSE file for details.
Contact me on X @sdrzn. Please create an issue if you come across a bug or would like a feature to be added.
Special thanks to Anthropic for providing the API that powers this extension.