GithubHelp home page GithubHelp logo

slickvicious / claude-dev Goto Github PK

View Code? Open in Web Editor NEW

This project forked from saoudrizwan/claude-dev

0.0 0.0 0.0 624 KB

Autonomous software engineer right in your IDE, capable of creating/editing files, executing commands, and more with your permission every step of the way.

Home Page: https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev

License: MIT License

JavaScript 1.30% TypeScript 96.47% CSS 1.58% HTML 0.66%

claude-dev's Introduction

Claude Dev

Download VSCode Extension

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.

How it works

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.

Tools

Claude Dev has access to the following capabilities:

  1. 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)
  2. 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)
  3. list_files_recursive: List all paths for files in the specified directory and nested subdirectories (excludes files in .gitignore)
  4. 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)
  5. read_file: Read the contents of a file at the specified path
  6. write_to_file: Write content to a file at the specified path, automatically creating any necessary directories
  7. ask_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)
  8. attempt_completion: Present the result to the user after completing a task, potentially with a CLI command to kickoff a demonstration

Working in Existing Projects

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.

  1. 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.

  2. 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 supports python, 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 in src/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.

  3. 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).

Only With Your Permission

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.

image

Contribution

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:

  1. Clone the repository:
    git clone https://github.com/saoudrizwan/claude-dev.git
  2. Open the project in VSCode:
    code claude-dev
  3. Install the necessary dependencies for the extension and webview-gui:
    npm run install:all
  4. Launch by pressing F5 to open a new VSCode window with the extension loaded

Reviews

License

This project is licensed under the MIT License. See the LICENSE file for details.

Questions?

Contact me on X @sdrzn. Please create an issue if you come across a bug or would like a feature to be added.

Acknowledgments

Special thanks to Anthropic for providing the API that powers this extension.

claude-dev's People

Contributors

saoudrizwan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.