From 998de2518e6743c0f3666254cf27113b7d4565df Mon Sep 17 00:00:00 2001 From: amaechi hope Date: Sat, 4 Oct 2025 19:26:23 +0100 Subject: [PATCH 1/8] feat: update readme --- CONTRIBUTING.md | 0 README.md | 49 ++++++++++++++++++++++++++++++++++--------------- pnpm-lock.yaml | 16 +++++----------- 3 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/README.md b/README.md index b3e182ef532..365afc045ee 100644 --- a/README.md +++ b/README.md @@ -8,32 +8,37 @@ # 🚀 Kilo Code -> Open-source VS Code AI agent. We frequently merge features from open-source projects while building our own vision. +Kilo Code is an open-source AI-powered VS Code agent designed to make coding faster, smarter, and more creative. +We merge innovative ideas from the open-source ecosystem while building our own vision for the future of AI-assisted development. -- ✨ Generate code from natural language -- ✅ Checks its own work -- 🧪 Run terminal commands -- 🌐 Automate the browser -- 🤖 Latest AI models -- 🎁 API keys optional -- 💡 **Get $20 in bonus credits when you top-up for the first time** Credits can be used with 400+ models like Gemini 2.5 Pro, Claude 4 Sonnet & Opus, and GPT-5 +## Highlights + +- ✨ Natural Language to Code +- ✅ Self-Verification +- 🧪 Terminal Automation +- 🌐 Browser Automation +- 🤖 Latest AI Models +- 🎁 API Keys Optional +- 💡 **Get $20 in bonus credits when you top-up for the first time**: Credits can be used with 400+ models like Gemini 2.5 Pro, Claude 4 Sonnet & Opus, and GPT-5

+## Quick Links + - [VS Code Marketplace](https://kilocode.ai/vscode-marketplace?utm_source=Readme) (download) - [Official KiloCode.ai Home page](https://kilocode.ai) (learn more) ## Key Features -- **Code Generation:** Generate code using natural language. -- **Task Automation:** Automate repetitive coding tasks. -- **Automated Refactoring:** Refactor and improve existing code. -- **MCP Server Marketplace**: Easily find, and use MCP servers to extend the agent capabilities. +- **Code Generation:** Generate high-quality code using natural language. +- **Task Automation:** Automate repetitive coding tasks to save time.. +- **Automated Refactoring:** Refactor and improve existing code efficiently. +- **MCP Server Marketplace**: Easily find, and use MCP servers to extend Kilo Code’s capabilities. - **Multi Mode**: Plan with Architect, Code with Coder, and Debug with Debugger, and make your own custom modes. -## How to get started with Kilo Code +## Get Started 1. Install the Kilo Code extension from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=kilocode.Kilo-Code). 2. Create your account to access 400+ cutting-edge AI models including Gemini 2.5 Pro, Claude 4 Sonnet & Opus, and GPT-5 – with transparent pricing that matches provider rates exactly. @@ -41,9 +46,23 @@ [![Watch the video](https://img.youtube.com/vi/pqGfYXgrhig/maxresdefault.jpg)](https://youtu.be/pqGfYXgrhig) -## Extension Development +## Developer Setup + +If you want to contribute or modify the extension locally, see the [DEVELOPMENT.md](/DEVELOPMENT.md) file for build and setup instructions. + +## Contributing + +We welcome contributions from developers, writers, and enthusiasts! +To get started, please read our [Contributing Guide](/CONTRIBUTING.md). It includes details on setting up your environment, coding standards, and how to submit pull requests. + +## Code of Conduct + +Our community is built on respect, inclusivity, and collaboration. Please review our [Code of Conduct](/CODE_OF_CONDUCT.md) to understand the expectations for all contributors and community members. + +## License -For details on building and developing the extension, see [DEVELOPMENT.md](/DEVELOPMENT.md) +This project is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). +You’re free to use, modify, and distribute this code, including for commercial purposes as long as you include proper attribution and license notices. See [License](/LICENSE). ## Contributors diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9d604b3a47..76db41a9b3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2942,10 +2942,6 @@ packages: resolution: {integrity: sha512-t3yaEOuGu9NlIZ+hIeGbBjFtZT7j2cb2tg0fuaJKeGotchRjjLfrBA9Kwf8quhpP1EUuxModQg04q/mBwyg8uA==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.3': - resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.4': resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} @@ -20003,8 +19999,6 @@ snapshots: '@babel/runtime@7.27.4': {} - '@babel/runtime@7.28.3': {} - '@babel/runtime@7.28.4': {} '@babel/template@7.27.2': @@ -20578,7 +20572,7 @@ snapshots: '@babel/preset-env': 7.28.3(@babel/core@7.28.3) '@babel/preset-react': 7.27.1(@babel/core@7.28.3) '@babel/preset-typescript': 7.27.1(@babel/core@7.28.3) - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.4 '@babel/runtime-corejs3': 7.28.3 '@babel/traverse': 7.28.3 '@docusaurus/logger': 3.8.1 @@ -35410,7 +35404,7 @@ snapshots: react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.1.1))(webpack@5.101.3(esbuild@0.25.9)): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.4 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.1.1)' webpack: 5.101.3(esbuild@0.25.9) @@ -35465,13 +35459,13 @@ snapshots: react-router-config@5.1.1(react-router@5.3.4(react@19.1.1))(react@19.1.1): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.4 react: 19.1.1 react-router: 5.3.4(react@19.1.1) react-router-dom@5.3.4(react@19.1.1): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.4 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -35482,7 +35476,7 @@ snapshots: react-router@5.3.4(react@19.1.1): dependencies: - '@babel/runtime': 7.28.3 + '@babel/runtime': 7.28.4 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 From c6d49200c63fc28f6b534bb14695944a343a7638 Mon Sep 17 00:00:00 2001 From: amaechi hope Date: Sun, 5 Oct 2025 16:27:10 +0100 Subject: [PATCH 2/8] feat: add contributing file --- CONTRIBUTING.md | 145 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e69de29bb2d..21b28b1f39f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -0,0 +1,145 @@ +# Contributing to Kilo Code + +First off, thanks for taking the time to contribute! ❤️ + +All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for the team and smooth out the experience for all involved. The community looks forward to your contributions. 🎉 + +If you don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about: + +- Star the project +- Post on X or Linkedin about Kilo Code `#kilocode +- Mention the project at local meetups and tell your friends/colleagues + +## Table of Contents + +- [Code of Conduct](#code-of-conduct) +- [I Have a Question](#i-have-a-question) +- [I Want To Contribute](#i-want-to-contribute) + - [Code Contributors](code-contributors) + - [Reporting Bugs](#reporting-bugs) + - [Custom Modes](#custom-modes) + - [Feature Requests](#feature-requests) + - [Improving The Documentation](#improving-the-documentation) + - [Improving The Design](#improving-the-design) + - [Publish a Blog Post or Case Study](#publish-a-blog-post-or-case-study) + - [Commit Messages](#commit-messages) +- [Pull requests](#pull-requests) + + +## Code of Conduct + +This project and everyone participating in it is governed by the[Code of Conduct](https://github.com/Kilo-Org/kilocode/blob/main/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior +to [hi@kilocode.ai](mailto:hi@kilocode.ai). + + +## I Have a Question + +If you need clarification after reading this document, we encourage you to join the [discord](https://kilocode.ai/discord) workspace and join channels [kilo-dev-contributors](https://discord.com/channels/1349288496988160052/1391109167275577464) and [extensions-support channel](https://discord.com/channels/1349288496988160052/1349358641295265864). + + +## I Want To Contribute + +### Code Contributors + +We’re excited that you’re interested in contributing code to Kilo Code! Before you start, please take a look at our [Development Guide](https://github.com/Kilo-Org/kilocode/blob/main/DEVELOPMENT.md), it includes setup instructions, build steps, and details on running tests locally. + +#### What to Expect + +- A GUI-based change with settings may involve 12–13 files, plus about 18 more for internationalization (i18n). + +- A new feature or major update might also require corresponding tests, translations, and settings configuration updates. + +Don’t let that scare you off, we just want you to have a realistic idea of what’s involved before diving in. You’ll learn a lot, and we’re here to help if you get stuck. + +#### Tips Before You Start + +- If your change affects any UI elements or Settings, expect it to touch multiple files and translations. + +- You can use our translation workflow to automate adding i18n strings instead of editing each language manually. + +Unsure if your contribution is “small” or “large”? Start a quick discussion in [kilo-dev-contributors](https://discord.com/channels/1349288496988160052/1391109167275577464) channel on discord or open an issue with good context, follow the commit and pull request guidelines below once you’re ready to open a PR. + + +### Reporting Bugs + +Please use our issues templates that provide hints on what information we need to help you. + +> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to [hi@kilocode.ai](mailto:hi@kilocode.ai). + +### Custom Modes + +Custom modes are a powerful way to extend Kilo Code's capabilities. To create and share a custom mode: + +- Follow the [Custom Modes documentation](https://kilocode.ai/docs/features/custom-modes) to create your mode. + +- Test your mode thoroughly + +- Share your mode with the community by submitting a [GitHub Discussion](https://github.com/Kilo-Org/kilocode/discussions). + +### Feature Requests + +Open an [Issue](https://github.com/Kilo-Org/kilocode/issues/new/choose) only to suggest enhancement or reporting a bug. Don't open issues for questions or support, instead join our [Discord workspace](https://kilocode.ai/discord) and ask there. +- Provide as much context as you can about what you're running into. + +### Improving The Documentation + +If you notice outdated information or areas that could be clarified, kindly start a discussion in the [general](https://discord.com/channels/1349288496988160052/1349288496988160055) channel on discord. +Please note that the main [documentation](https://github.com/Kilo-Org/docs) repository has been archived, you can still view it for reference. + +### Improving The Design + +Design contributions are welcome! To ensure smooth collaboration, please use the Design Improvement Template when opening a design-related issue. +This helps us gather the right context (such as wireframes, mockups, or visual references) and maintain a consistent design language across the project. Feedback and iterations are highly encouraged, design is always a shared process. + +### Publish a Blog or Case Study + +We love hearing how people use or extend Kilo Code in their own projects. If you’ve written about your experience, we’d be happy to feature it! +Our blog and case study repository has been archived, you can still access it [here](https://github.com/Kilo-Org/docs/tree/main/blog-posts) for reference. To share your work, please start a discussion in the [general](https://discord.com/channels/1349288496988160052/1349288496988160055) channel on discord, summarizing your post or case study, with a link to the full content. + +### Commit Messages + +Writing clear and consistent commit messages helps maintainers understand the purpose of your changes. A good commit message should: + +- Be written in the present tense (e.g., Add new feature, not Added new feature) + +- Be short (50 characters or less for the summary line) + +- Include additional context in the body if needed + +- Reference related issue numbers (e.g., Fixes `#123) + +- Keep each commit focused on one logical change + + +## Pull Requests + +When you’re ready to contribute your changes, follow these steps to create a clear and reviewable pull request: + +- Push your changes to your fork: + + ```bash + git push origin your-branch-name + ``` + +- Open a Pull Request against the main Kilo Code repository. + +- Select "Compare across forks" and choose your fork and branch. + +- Fill out the PR template with: + +- A clear description of your changes + + - Any related issues (e.g., “Fixes `#123”) + + - Testing steps or screenshots (if applicable) + + - Notes for reviewers, if special attention is needed + +For more context, kindly read the official [contributing docs](https://kilocode.ai/docs/extending/contributing-to-kilo). + +Your contributions, big or small help make Kilo Code better for everyone!🫶 + + +## References + +This document was adapted from [https://contributing.md](https://contributing.md/)! \ No newline at end of file From 63ba93ad20793e089514ef446b76fe5a97a0e5c8 Mon Sep 17 00:00:00 2001 From: amaechi hope Date: Sun, 5 Oct 2025 16:48:07 +0100 Subject: [PATCH 3/8] feat: update readme and contributing file --- CONTRIBUTING.md | 8 ++++---- README.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 21b28b1f39f..e5d0d07d152 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ If you don't have time to contribute, that's fine. There are other easy ways to - [Code of Conduct](#code-of-conduct) - [I Have a Question](#i-have-a-question) - [I Want To Contribute](#i-want-to-contribute) - - [Code Contributors](code-contributors) + - [Code Contributors](#code-contributors) - [Reporting Bugs](#reporting-bugs) - [Custom Modes](#custom-modes) - [Feature Requests](#feature-requests) @@ -28,13 +28,13 @@ If you don't have time to contribute, that's fine. There are other easy ways to ## Code of Conduct -This project and everyone participating in it is governed by the[Code of Conduct](https://github.com/Kilo-Org/kilocode/blob/main/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior +This project and everyone participating in it is governed by the [Code of Conduct](https://github.com/Kilo-Org/kilocode/blob/main/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [hi@kilocode.ai](mailto:hi@kilocode.ai). ## I Have a Question -If you need clarification after reading this document, we encourage you to join the [discord](https://kilocode.ai/discord) workspace and join channels [kilo-dev-contributors](https://discord.com/channels/1349288496988160052/1391109167275577464) and [extensions-support channel](https://discord.com/channels/1349288496988160052/1349358641295265864). +If you need clarification after reading this document, we encourage you to join our [discord](https://kilocode.ai/discord) workspace and join channels [kilo-dev-contributors](https://discord.com/channels/1349288496988160052/1391109167275577464) and [extensions-support channel](https://discord.com/channels/1349288496988160052/1349358641295265864). ## I Want To Contribute @@ -91,7 +91,7 @@ Please note that the main [documentation](https://github.com/Kilo-Org/docs) repo Design contributions are welcome! To ensure smooth collaboration, please use the Design Improvement Template when opening a design-related issue. This helps us gather the right context (such as wireframes, mockups, or visual references) and maintain a consistent design language across the project. Feedback and iterations are highly encouraged, design is always a shared process. -### Publish a Blog or Case Study +### Publish a Blog Post or Case Study We love hearing how people use or extend Kilo Code in their own projects. If you’ve written about your experience, we’d be happy to feature it! Our blog and case study repository has been archived, you can still access it [here](https://github.com/Kilo-Org/docs/tree/main/blog-posts) for reference. To share your work, please start a discussion in the [general](https://discord.com/channels/1349288496988160052/1349288496988160055) channel on discord, summarizing your post or case study, with a link to the full content. diff --git a/README.md b/README.md index 365afc045ee..f1c579520de 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you want to contribute or modify the extension locally, see the [DEVELOPMENT. ## Contributing We welcome contributions from developers, writers, and enthusiasts! -To get started, please read our [Contributing Guide](/CONTRIBUTING.md). It includes details on setting up your environment, coding standards, and how to submit pull requests. +To get started, please read our [Contributing Guide](/CONTRIBUTING.md). It includes details on setting up your environment, coding standards, types of contribution and how to submit pull requests. ## Code of Conduct From a4d7f44516b5cb1ff43b32b085a5a7dab00367a5 Mon Sep 17 00:00:00 2001 From: amaechi hope Date: Thu, 22 Jan 2026 12:59:42 +0100 Subject: [PATCH 4/8] feat: update readme --- CONTRIBUTING.md | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e5d0d07d152..a65e2ebeee6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,28 +15,25 @@ If you don't have time to contribute, that's fine. There are other easy ways to - [Code of Conduct](#code-of-conduct) - [I Have a Question](#i-have-a-question) - [I Want To Contribute](#i-want-to-contribute) - - [Code Contributors](#code-contributors) - - [Reporting Bugs](#reporting-bugs) - - [Custom Modes](#custom-modes) - - [Feature Requests](#feature-requests) - - [Improving The Documentation](#improving-the-documentation) - - [Improving The Design](#improving-the-design) - - [Publish a Blog Post or Case Study](#publish-a-blog-post-or-case-study) - - [Commit Messages](#commit-messages) + - [Code Contributors](#code-contributors) + - [Reporting Bugs](#reporting-bugs) + - [Custom Modes](#custom-modes) + - [Feature Requests](#feature-requests) + - [Improving The Documentation](#improving-the-documentation) + - [Improving The Design](#improving-the-design) + - [Publish a Blog Post or Case Study](#publish-a-blog-post-or-case-study) + - [Commit Messages](#commit-messages) - [Pull requests](#pull-requests) - ## Code of Conduct This project and everyone participating in it is governed by the [Code of Conduct](https://github.com/Kilo-Org/kilocode/blob/main/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [hi@kilocode.ai](mailto:hi@kilocode.ai). - ## I Have a Question If you need clarification after reading this document, we encourage you to join our [discord](https://kilocode.ai/discord) workspace and join channels [kilo-dev-contributors](https://discord.com/channels/1349288496988160052/1391109167275577464) and [extensions-support channel](https://discord.com/channels/1349288496988160052/1349358641295265864). - ## I Want To Contribute ### Code Contributors @@ -59,7 +56,6 @@ Don’t let that scare you off, we just want you to have a realistic idea of wha Unsure if your contribution is “small” or “large”? Start a quick discussion in [kilo-dev-contributors](https://discord.com/channels/1349288496988160052/1391109167275577464) channel on discord or open an issue with good context, follow the commit and pull request guidelines below once you’re ready to open a PR. - ### Reporting Bugs Please use our issues templates that provide hints on what information we need to help you. @@ -74,11 +70,12 @@ Custom modes are a powerful way to extend Kilo Code's capabilities. To create an - Test your mode thoroughly -- Share your mode with the community by submitting a [GitHub Discussion](https://github.com/Kilo-Org/kilocode/discussions). +- Share your mode with the community on [Reddit](https://www.reddit.com/r/kilocode/) or you can show off / start a discussion on [show-off-your-builds](https://discord.com/channels/1349288496988160052/1375399779760214037) or [workflows-and-integration](https://discord.com/channels/1349288496988160052/1420236932780130418) on discord. ### Feature Requests -Open an [Issue](https://github.com/Kilo-Org/kilocode/issues/new/choose) only to suggest enhancement or reporting a bug. Don't open issues for questions or support, instead join our [Discord workspace](https://kilocode.ai/discord) and ask there. +Suggest feature requests in [Discussion](https://github.com/Kilo-Org/kilocode/discussions), only open an [Issue](https://github.com/Kilo-Org/kilocode/issues/new/choose) for reporting a bug or actual contributions. Don't open issues for questions or support, instead join our [Discord workspace](https://kilocode.ai/discord) and ask there. + - Provide as much context as you can about what you're running into. ### Improving The Documentation @@ -93,8 +90,8 @@ This helps us gather the right context (such as wireframes, mockups, or visual r ### Publish a Blog Post or Case Study -We love hearing how people use or extend Kilo Code in their own projects. If you’ve written about your experience, we’d be happy to feature it! -Our blog and case study repository has been archived, you can still access it [here](https://github.com/Kilo-Org/docs/tree/main/blog-posts) for reference. To share your work, please start a discussion in the [general](https://discord.com/channels/1349288496988160052/1349288496988160055) channel on discord, summarizing your post or case study, with a link to the full content. +We love hearing how people use or extend Kilo Code in their own projects. If you’ve written about your experience, we’re happy to review it! +Our blog and case study repository has been archived, you can still access it [here](https://github.com/Kilo-Org/docs/tree/main/blog-posts) for reference. To share your work, please start a discussion in the [general](https://discord.com/channels/1349288496988160052/1349288496988160055) channel on discord, summarizing your post or case study, with a link to the full content. ### Commit Messages @@ -110,7 +107,6 @@ Writing clear and consistent commit messages helps maintainers understand the pu - Keep each commit focused on one logical change - ## Pull Requests When you’re ready to contribute your changes, follow these steps to create a clear and reviewable pull request: @@ -129,17 +125,16 @@ When you’re ready to contribute your changes, follow these steps to create a c - A clear description of your changes - - Any related issues (e.g., “Fixes `#123”) + - Any related issues (e.g., “Fixes `#123”) - - Testing steps or screenshots (if applicable) + - Testing steps or screenshots (if applicable) - - Notes for reviewers, if special attention is needed + - Notes for reviewers, if special attention is needed For more context, kindly read the official [contributing docs](https://kilocode.ai/docs/extending/contributing-to-kilo). Your contributions, big or small help make Kilo Code better for everyone!🫶 +## References -## References - -This document was adapted from [https://contributing.md](https://contributing.md/)! \ No newline at end of file +This document was adapted from [https://contributing.md](https://contributing.md/)! From 907fb53aca1f70b1e3e2f91fbb3bcbdc6b514a48 Mon Sep 17 00:00:00 2001 From: Kevin van Dijk Date: Tue, 3 Feb 2026 22:02:27 +0100 Subject: [PATCH 5/8] Add changeset --- .changeset/fancy-lands-marry.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fancy-lands-marry.md diff --git a/.changeset/fancy-lands-marry.md b/.changeset/fancy-lands-marry.md new file mode 100644 index 00000000000..bdfbfe51ae4 --- /dev/null +++ b/.changeset/fancy-lands-marry.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Added contributing.md file for onboarding new contributors From ef40058bc1c4a25378ff18338df2b903af90aa44 Mon Sep 17 00:00:00 2001 From: Kevin van Dijk Date: Tue, 3 Feb 2026 22:04:58 +0100 Subject: [PATCH 6/8] Fix links for new documentation structure --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a65e2ebeee6..a0a2c14c47c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,7 +66,7 @@ Please use our issues templates that provide hints on what information we need t Custom modes are a powerful way to extend Kilo Code's capabilities. To create and share a custom mode: -- Follow the [Custom Modes documentation](https://kilocode.ai/docs/features/custom-modes) to create your mode. +- Follow the [Custom Modes documentation](https://kilo.ai/docs/customize/custom-modes) to create your mode. - Test your mode thoroughly @@ -131,7 +131,7 @@ When you’re ready to contribute your changes, follow these steps to create a c - Notes for reviewers, if special attention is needed -For more context, kindly read the official [contributing docs](https://kilocode.ai/docs/extending/contributing-to-kilo). +For more context, kindly read the official [contributing docs](https://kilo.ai/docs/contributing). Your contributions, big or small help make Kilo Code better for everyone!🫶 From a8d2cc616c89ee7b3f46f2495989b1abdabff94d Mon Sep 17 00:00:00 2001 From: Kevin van Dijk Date: Tue, 3 Feb 2026 22:10:14 +0100 Subject: [PATCH 7/8] Use new home page link in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1e954183fff..b20a79e8e53 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ ## Quick Links -- [VS Code Marketplace](https://kilocode.ai/vscode-marketplace?utm_source=Readme) (download) -- [Official KiloCode.ai Home page](https://kilo.ai) (learn more) +- [VS Code Marketplace](https://kilo.ai/vscode-marketplace?utm_source=Readme) (download) +- [Official Kilo.ai Home page](https://kilo.ai) (learn more) ## Key Features From 95e2a9449ae6706c1f4dbfe4f0c93ba80fde2259 Mon Sep 17 00:00:00 2001 From: Kevin van Dijk Date: Tue, 3 Feb 2026 22:25:38 +0100 Subject: [PATCH 8/8] Revert irrelevant whitespace changes --- apps/kilocode-docs/pages/_app.tsx | 7 +- apps/web-roo-code/src/app/pricing/page.tsx | 4 +- cli/src/commands/checkpoint.ts | 4 +- .../autocomplete.detectInputState.test.ts | 28 +---- .../hooks/__tests__/useSessionCost.test.ts | 1 + src/core/tools/__tests__/editFileTool.spec.ts | 5 +- src/i18n/locales/zh-TW/kilocode.json | 2 +- .../files/typescript/arrowFunctions.ts | 28 ++--- .../files/typescript/classMethods.ts | 48 ++++----- .../files/typescript/functions.ts | 16 +-- .../files/typescript/generators.ts | 16 +-- src/test-llm-autocompletion/approvals.spec.ts | 100 ++---------------- 12 files changed, 76 insertions(+), 183 deletions(-) diff --git a/apps/kilocode-docs/pages/_app.tsx b/apps/kilocode-docs/pages/_app.tsx index 1c74732221e..77c40448903 100644 --- a/apps/kilocode-docs/pages/_app.tsx +++ b/apps/kilocode-docs/pages/_app.tsx @@ -122,12 +122,7 @@ export default function MyApp({ Component, pageProps }: AppProps) { - + diff --git a/apps/web-roo-code/src/app/pricing/page.tsx b/apps/web-roo-code/src/app/pricing/page.tsx index 487c14d0871..6ae6e9993b2 100644 --- a/apps/web-roo-code/src/app/pricing/page.tsx +++ b/apps/web-roo-code/src/app/pricing/page.tsx @@ -239,8 +239,8 @@ export default function PricingPage() {

On any plan, you can use your own LLM provider API key or use the built-in Roo Code - Router – curated models to work with Roo with no markup, including the latest - Gemini, GPT and Claude. Paid with credits. + Router – curated models to work with Roo with no markup, including the + latest Gemini, GPT and Claude. Paid with credits. See per model pricing. diff --git a/cli/src/commands/checkpoint.ts b/cli/src/commands/checkpoint.ts index f519776c4c2..7edaad02aec 100644 --- a/cli/src/commands/checkpoint.ts +++ b/cli/src/commands/checkpoint.ts @@ -222,8 +222,8 @@ function getCheckpointsPath(): string { } /** - * Handle /checkpoint disable - */ + * Handle /checkpoint disable + */ async function handleDisable(context: CommandContext): Promise { const { addMessage, sendWebviewMessage } = context diff --git a/cli/src/services/__tests__/autocomplete.detectInputState.test.ts b/cli/src/services/__tests__/autocomplete.detectInputState.test.ts index 62e3a6957fb..137fe8cd25c 100644 --- a/cli/src/services/__tests__/autocomplete.detectInputState.test.ts +++ b/cli/src/services/__tests__/autocomplete.detectInputState.test.ts @@ -67,18 +67,8 @@ describe("detectInputState", () => { { condition: (context) => context.getArgument("subcommand") === "select", provider: async () => [ - { - value: "personal", - description: "Personal account", - matchScore: 1, - highlightedValue: "personal", - }, - { - value: "kilo-code", - description: "Kilo Code team", - matchScore: 1, - highlightedValue: "kilo-code", - }, + { value: "personal", description: "Personal account", matchScore: 1, highlightedValue: "personal" }, + { value: "kilo-code", description: "Kilo Code team", matchScore: 1, highlightedValue: "kilo-code" }, ], }, ], @@ -118,12 +108,7 @@ describe("detectInputState", () => { }, provider: async () => [ { value: "gpt-4", description: "GPT-4", matchScore: 1, highlightedValue: "gpt-4" }, - { - value: "claude-sonnet", - description: "Claude Sonnet", - matchScore: 1, - highlightedValue: "claude-sonnet", - }, + { value: "claude-sonnet", description: "Claude Sonnet", matchScore: 1, highlightedValue: "claude-sonnet" }, ], }, ], @@ -147,12 +132,7 @@ describe("detectInputState", () => { required: true, provider: async () => [ { value: "code", description: "Code mode", matchScore: 1, highlightedValue: "code" }, - { - value: "architect", - description: "Architect mode", - matchScore: 1, - highlightedValue: "architect", - }, + { value: "architect", description: "Architect mode", matchScore: 1, highlightedValue: "architect" }, ], }, ], diff --git a/cli/src/state/hooks/__tests__/useSessionCost.test.ts b/cli/src/state/hooks/__tests__/useSessionCost.test.ts index e141e9207ab..74e34923243 100644 --- a/cli/src/state/hooks/__tests__/useSessionCost.test.ts +++ b/cli/src/state/hooks/__tests__/useSessionCost.test.ts @@ -125,6 +125,7 @@ describe("useSessionCost", () => { expect(result.hasCostData).toBe(true) }) + it("should handle messages with empty text", () => { const messages: ExtensionChatMessage[] = [ { diff --git a/src/core/tools/__tests__/editFileTool.spec.ts b/src/core/tools/__tests__/editFileTool.spec.ts index 9f7406774c8..96ca18c5d3f 100644 --- a/src/core/tools/__tests__/editFileTool.spec.ts +++ b/src/core/tools/__tests__/editFileTool.spec.ts @@ -476,10 +476,7 @@ describe("editFileTool", () => { ) expect(mockTask.consecutiveMistakeCountForEditFile.get(testFilePath)).toBe(2) - expect(mockTask.say).toHaveBeenCalledWith( - "diff_error", - expect.stringContaining("Occurrence count mismatch"), - ) + expect(mockTask.say).toHaveBeenCalledWith("diff_error", expect.stringContaining("Occurrence count mismatch")) }) it("resets consecutive error counter on successful edit", async () => { diff --git a/src/i18n/locales/zh-TW/kilocode.json b/src/i18n/locales/zh-TW/kilocode.json index 78933bf5126..a1044fb02b0 100644 --- a/src/i18n/locales/zh-TW/kilocode.json +++ b/src/i18n/locales/zh-TW/kilocode.json @@ -209,4 +209,4 @@ "unknown": "連線失敗。請檢查設定並重試。" } } -} +} \ No newline at end of file diff --git a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/arrowFunctions.ts b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/arrowFunctions.ts index dd3aaefa009..aadffe06516 100644 --- a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/arrowFunctions.ts +++ b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/arrowFunctions.ts @@ -1,29 +1,29 @@ // @ts-nocheck const getAddress = (person: Person): Address => { - // TODO -} + // TODO +}; const logPerson = (person: Person) => { - // TODO -} + // TODO +}; const getHardcodedAddress = (): Address => { - // TODO -} + // TODO +}; const getAddresses = (people: Person[]): Address[] => { - // TODO -} + // TODO +}; const logPersonWithAddres = (person: Person

): Person
=> { - // TODO -} + // TODO +}; const logPersonOrAddress = (person: Person | Address): Person | Address => { - // TODO -} + // TODO +}; const logPersonAndAddress = (person: Person, address: Address) => { - // TODO -} + // TODO +}; diff --git a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/classMethods.ts b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/classMethods.ts index 04cc29ae7fc..08f7506a70e 100644 --- a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/classMethods.ts +++ b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/classMethods.ts @@ -1,35 +1,35 @@ // @ts-nocheck class Group { - getPersonAddress(person: Person): Address { - // TODO - } + getPersonAddress(person: Person): Address { + // TODO + } - getHardcodedAddress(): Address { - // TODO - } + getHardcodedAddress(): Address { + // TODO + } - addPerson(person: Person) { - // TODO - } + addPerson(person: Person) { + // TODO + } - addPeople(people: Person[]) { - // TODO - } + addPeople(people: Person[]) { + // TODO + } - getAddresses(people: Person[]): Address[] { - // TODO - } + getAddresses(people: Person[]): Address[] { + // TODO + } - logPersonWithAddress(person: Person
): Person
{ - // TODO - } + logPersonWithAddress(person: Person
): Person
{ + // TODO + } - logPersonOrAddress(person: Person | Address): Person | Address { - // TODO - } + logPersonOrAddress(person: Person | Address): Person | Address { + // TODO + } - logPersonAndAddress(person: Person, address: Address) { - // TODO - } + logPersonAndAddress(person: Person, address: Address) { + // TODO + } } diff --git a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/functions.ts b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/functions.ts index ab3c2ebcb3a..bb9d39c85d9 100644 --- a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/functions.ts +++ b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/functions.ts @@ -1,33 +1,33 @@ // @ts-nocheck function getAddress(person: Person): Address { - // TODO + // TODO } function getFirstAddress(people: Person[]): Address { - // TODO + // TODO } function logPerson(person: Person) { - // TODO + // TODO } function getHardcodedAddress(): Address { - // TODO + // TODO } function getAddresses(people: Person[]): Address[] { - // TODO + // TODO } function logPersonWithAddress(person: Person
): Person
{ - // TODO + // TODO } function logPersonOrAddress(person: Person | Address): Person | Address { - // TODO + // TODO } function logPersonAndAddress(person: Person, address: Address) { - // TODO + // TODO } diff --git a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/generators.ts b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/generators.ts index 4ad998ed9fd..79811b47873 100644 --- a/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/generators.ts +++ b/src/services/continuedev/core/autocomplete/context/root-path-context/__fixtures__/files/typescript/generators.ts @@ -1,33 +1,33 @@ // @ts-nocheck function* getAddress(person: Person): Address { - // TODO + // TODO } function* getFirstAddress(people: Person[]): Address { - // TODO + // TODO } function* logPerson(person: Person) { - // TODO + // TODO } function* getHardcodedAddress(): Address { - // TODO + // TODO } function* getAddresses(people: Person[]): Address[] { - // TODO + // TODO } function* logPersonWithAddress(person: Person
): Person
{ - // TODO + // TODO } function* logPersonOrAddress(person: Person | Address): Person | Address { - // TODO + // TODO } function* logPersonAndAddress(person: Person, address: Address) { - // TODO + // TODO } diff --git a/src/test-llm-autocompletion/approvals.spec.ts b/src/test-llm-autocompletion/approvals.spec.ts index 36f6e615c22..a75a3d2d057 100644 --- a/src/test-llm-autocompletion/approvals.spec.ts +++ b/src/test-llm-autocompletion/approvals.spec.ts @@ -35,15 +35,7 @@ describe("approvals", () => { const input = "test input" const output = "test output" - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - input, - output, - "completion", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) + await checkApproval(TEST_CATEGORY, TEST_NAME, input, output, "completion", TEST_FILENAME, TEST_CONTEXT_FILES) const categoryDir = path.join(TEST_APPROVALS_DIR, TEST_CATEGORY) expect(fs.existsSync(categoryDir)).toBe(true) @@ -63,33 +55,9 @@ describe("approvals", () => { close: () => {}, } as any) - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - "input1", - "output1", - "completion1", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - "input2", - "output2", - "completion2", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - "input3", - "output3", - "completion3", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) + await checkApproval(TEST_CATEGORY, TEST_NAME, "input1", "output1", "completion1", TEST_FILENAME, TEST_CONTEXT_FILES) + await checkApproval(TEST_CATEGORY, TEST_NAME, "input2", "output2", "completion2", TEST_FILENAME, TEST_CONTEXT_FILES) + await checkApproval(TEST_CATEGORY, TEST_NAME, "input3", "output3", "completion3", TEST_FILENAME, TEST_CONTEXT_FILES) const categoryDir = path.join(TEST_APPROVALS_DIR, TEST_CATEGORY) const files = fs.readdirSync(categoryDir) @@ -107,15 +75,7 @@ describe("approvals", () => { close: () => {}, } as any) - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - "input", - "output", - "completion", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) + await checkApproval(TEST_CATEGORY, TEST_NAME, "input", "output", "completion", TEST_FILENAME, TEST_CONTEXT_FILES) const categoryDir = path.join(TEST_APPROVALS_DIR, TEST_CATEGORY) const files = fs.readdirSync(categoryDir) @@ -134,33 +94,9 @@ describe("approvals", () => { close: () => {}, } as any) - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - "input1", - "output1", - "completion1", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) // approved.1 - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - "input2", - "output2", - "completion2", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) // rejected.2 - await checkApproval( - TEST_CATEGORY, - TEST_NAME, - "input3", - "output3", - "completion3", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) // approved.3 + await checkApproval(TEST_CATEGORY, TEST_NAME, "input1", "output1", "completion1", TEST_FILENAME, TEST_CONTEXT_FILES) // approved.1 + await checkApproval(TEST_CATEGORY, TEST_NAME, "input2", "output2", "completion2", TEST_FILENAME, TEST_CONTEXT_FILES) // rejected.2 + await checkApproval(TEST_CATEGORY, TEST_NAME, "input3", "output3", "completion3", TEST_FILENAME, TEST_CONTEXT_FILES) // approved.3 const categoryDir = path.join(TEST_APPROVALS_DIR, TEST_CATEGORY) const files = fs.readdirSync(categoryDir) @@ -246,24 +182,8 @@ describe("approvals", () => { close: () => {}, } as any) - await checkApproval( - TEST_CATEGORY, - "test-case-1", - "input1", - "output1", - "completion1", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) - await checkApproval( - TEST_CATEGORY, - "test-case-2", - "input2", - "output2", - "completion2", - TEST_FILENAME, - TEST_CONTEXT_FILES, - ) + await checkApproval(TEST_CATEGORY, "test-case-1", "input1", "output1", "completion1", TEST_FILENAME, TEST_CONTEXT_FILES) + await checkApproval(TEST_CATEGORY, "test-case-2", "input2", "output2", "completion2", TEST_FILENAME, TEST_CONTEXT_FILES) const categoryDir = path.join(TEST_APPROVALS_DIR, TEST_CATEGORY) const files = fs.readdirSync(categoryDir)