Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
eb0bc32
feat: add .dist.* files to ManagedIndexing ignore list
kiloconnect[bot] Dec 11, 2025
f068b7d
fix(ollama): fix model not found error and context window display
lifesized Dec 16, 2025
b687127
Merge branch 'main' into fix/ollama-model-not-found-error
lifesized Dec 17, 2025
798eb71
Merge branch 'main' into fix/ollama-model-not-found-error
lifesized Dec 18, 2025
19875d0
chore: update Gemini Cli models and metadata
crazyrabbit0 Dec 18, 2025
5bdfe6b
Update Gemini CLI models and metadata
crazyrabbit0 Dec 18, 2025
f7c3715
Add changeset
kevinvandijk Dec 18, 2025
0a2dee2
Merge branch 'main' into fix/ollama-model-not-found-error
lifesized Dec 19, 2025
03595b5
Merge branch 'main' into patch-1
crazyrabbit0 Dec 19, 2025
e40379f
Add small correction to changeset
kevinvandijk Dec 19, 2025
7542d79
Set default for gemini-cli to 2.5-flash
kevinvandijk Dec 19, 2025
e81e7fa
docs: add Kilo Slackbot integration documentation
kiloconnect[bot] Dec 19, 2025
6382561
Apply suggestions from code review
RSO Dec 19, 2025
d818d0a
Merge pull request #4488 from lifesized/fix/ollama-model-not-found-error
kevinvandijk Dec 19, 2025
1482341
Merge pull request #4560 from crazyrabbit0/patch-1
kevinvandijk Dec 19, 2025
3f81b6a
Apply suggestion from @markijbema
markijbema Dec 19, 2025
74c81b7
Remove code reviews and explanations section
markijbema Dec 19, 2025
ce55c10
Merge pull request #4572 from Kilo-Org/session/agent_99e263fc-25ed-41…
RSO Dec 19, 2025
e259b04
feat: add telemetry for chat textarea autocomplete
markijbema Dec 19, 2025
1df9979
import statically
markijbema Dec 19, 2025
1741262
Merge pull request #4523 from Kilo-Org/mark/chat-textarea-autocomplet…
markijbema Dec 19, 2025
3de2547
feat: autocomplete telemetry
catrielmuller Dec 19, 2025
4ee5f0c
refactor: remove prettier changes
catrielmuller Dec 19, 2025
7caa96e
refactor: move command to constant file
catrielmuller Dec 19, 2025
9a593a3
Merge pull request #4400 from Kilo-Org/session/agent_43322f27-75ba-48…
jrf0110 Dec 19, 2025
074f311
Merge pull request #4582 from Kilo-Org/catrielmuller/jetbrains-autoco…
catrielmuller Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/large-jars-train.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"kilo-code": patch
---

chore: update Gemini Cli models and metadata

- Added gemini-3-flash-preview model configuration.
- Updated maxThinkingTokens for gemini-3-pro-preview to 32,768.
- Reordered model definitions to prioritize newer versions.
5 changes: 5 additions & 0 deletions .changeset/small-towns-march.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"kilo-code": patch
---

Add chat autocomplete telemetry
5 changes: 5 additions & 0 deletions .changeset/stale-towns-bathe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"kilo-code": patch
---

Jetbrains - Autocomplete Telemetry
5 changes: 5 additions & 0 deletions .changeset/yellow-plants-work.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"kilo-code": patch
---

fix(ollama): fix model not found error and context window display
147 changes: 147 additions & 0 deletions apps/kilocode-docs/docs/advanced-usage/slackbot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
---
title: Kilo Slackbot
sidebar_label: Kilo Slackbot
---

# Kilo Slackbot

The Kilo Slackbot brings the power of Kilo Code directly into your Slack workspace. Ask questions about your repositories, request code implementations, or get help with issues—all without leaving Slack.

---

## What You Can Do With the Slackbot

- **Ask questions about your repositories** — Get explanations about code, architecture, or implementation details
- **Request code implementations** — Tell the bot to implement fixes or features suggested in Slack threads
- **Get help with debugging** — Share error messages or issues and get AI-powered assistance
- **Collaborate with your team** — Mention the bot in any channel to get help in context

---

## Prerequisites

Before using the Kilo Slackbot:

- You must have a **Kilo Code account** with available credits
- Your **GitHub Integration must be configured** via the [Integrations tab](https://app.kilo.ai/integrations) so the Slackbot can access your repositories

To install the Kilo Slackbot, simply go to the integrations menu in the sidebar on https://app.kilo.ai and set up the Slack integration.

---

## How to Interact with the Slackbot

### Direct Messages

You can message the Kilo Slackbot directly through Slack DMs for private conversations:

1. Find **Kilo** in your Slack workspace's app list
2. Start a direct message conversation
3. Ask your question or describe what you need

This is ideal for:
- Private questions about your code
- Sensitive debugging sessions
- Personal productivity tasks

### Channel Mentions

Mention the bot in any channel where it's been added:

```
@Kilo can you explain how the authentication flow works in our backend?
```

This is great for:
- Team discussions where AI assistance would help
- Collaborative debugging sessions
- Getting quick answers during code reviews

---

## Use Cases

### Ask Questions About Your Repositories

Get instant answers about your codebase without switching contexts:

```
@Kilo what does the UserService class do in our main backend repo?
```

```
@Kilo how is error handling implemented in the payment processing module?
```

### Implement Fixes from Slack Discussions

When your team identifies an issue or improvement in a Slack thread, ask the bot to implement it:

```
@Kilo based on this thread, can you implement the fix for the null pointer exception in the order processing service?
```

The bot can:
- Read the context from the thread
- Understand the proposed solution
- Create a branch with the implementation
- Push the changes to your repository

### Debug Issues

Share error messages or stack traces and get help:

```
@Kilo I'm seeing this error in production:
[paste error message]
Can you help me understand what's causing it?
```

---

## How It Works

1. **Message the bot** — Either through DMs or by mentioning it in a channel
2. **Bot processes your request** — The Slackbot uses your connected GitHub repositories to understand context
3. **AI generates a response** — Kilo Code's AI analyzes your request and provides helpful responses
4. **Code changes (if requested)** — For implementation requests, the bot can create pull requests

---

## Cost

- **Kilo Code credits are used** when the Slackbot performs work (model usage, operations, etc.)
- Credit usage is similar to using Kilo Code through other interfaces

---

## Tips for Best Results

- **Be specific** — The more context you provide, the better the response
- **Reference specific files or functions** — Help the bot understand exactly what you're asking about
- **Use threads** — Keep related conversations in threads for better context
- **Specify the repository** — If you have multiple repos connected, mention which one you're asking about

---

## Limitations

- The Slackbot can only access repositories you've connected through the [Integrations](https://app.kilo.ai/integrations) page
- Complex multi-step implementations may require follow-up messages
- Response times may vary based on the complexity of your request

---

## Troubleshooting

**"The bot isn't responding."**
Ensure the Kilo Slackbot is installed in your workspace and has been added to the channel you're using.

**"The bot can't access my repository."**
Verify your GitHub integration is configured correctly in the [Integrations tab](https://app.kilo.ai/integrations).

**"I'm getting incomplete responses."**
Try breaking your request into smaller, more specific questions.

**"The bot doesn't understand my codebase."**
Make sure the repository you're asking about is connected and accessible through your GitHub integration.
1 change: 1 addition & 0 deletions apps/kilocode-docs/sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ const sidebars: SidebarsConfig = {
"features/auto-launch-configuration",
"advanced-usage/auto-cleanup",
"advanced-usage/integrations",
"advanced-usage/slackbot",
"advanced-usage/appbuilder",
"advanced-usage/cloud-agent",
"advanced-usage/code-reviews",
Expand Down
45 changes: 23 additions & 22 deletions jetbrains/plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ project.afterEvaluate {
tasks.findByName(":prepareSandbox")?.inputs?.properties?.put("build_mode", ext.get("debugMode"))
}


group = properties("pluginGroup").get()
version = properties("pluginVersion").get()

Expand Down Expand Up @@ -152,60 +151,62 @@ tasks {
println("Configuration file generated: ${configFile.absolutePath}")
}
}


buildPlugin {
dependsOn(prepareSandbox)

// Include the jetbrains directory contents from sandbox in the distribution root
doLast {
if (ext.get("debugMode") != "idea" && ext.get("debugMode") != "none") {
val distributionFile = archiveFile.get().asFile
val sandboxPluginsDir = layout.buildDirectory.get().asFile.resolve("idea-sandbox/IC-2024.3/plugins")
val jetbrainsDir = sandboxPluginsDir.resolve("jetbrains")

if (jetbrainsDir.exists() && distributionFile.exists()) {
logger.lifecycle("Adding sandbox resources to distribution ZIP...")
logger.lifecycle("Sandbox jetbrains dir: ${jetbrainsDir.absolutePath}")
logger.lifecycle("Distribution file: ${distributionFile.absolutePath}")

// Extract the existing ZIP
val tempDir = layout.buildDirectory.get().asFile.resolve("temp-dist")
tempDir.deleteRecursively()
tempDir.mkdirs()

copy {
from(zipTree(distributionFile))
into(tempDir)
}

// Copy jetbrains directory CONTENTS directly to plugin root (not the jetbrains folder itself)
val pluginDir = tempDir.resolve(rootProject.name)
copy {
from(jetbrainsDir) // Copy contents of jetbrains dir
into(pluginDir) // Directly into plugin root
into(pluginDir) // Directly into plugin root
}

// Re-create the ZIP with resources included
distributionFile.delete()
ant.invokeMethod("zip", mapOf(
"destfile" to distributionFile.absolutePath,
"basedir" to tempDir.absolutePath
))

ant.invokeMethod(
"zip",
mapOf(
"destfile" to distributionFile.absolutePath,
"basedir" to tempDir.absolutePath,
),
)

// Clean up temp directory
tempDir.deleteRecursively()

logger.lifecycle("Distribution ZIP updated with sandbox resources at root level")
}
}
}
}

prepareSandbox {
dependsOn("generateConfigProperties")
duplicatesStrategy = DuplicatesStrategy.INCLUDE

if (ext.get("debugMode") == "idea") {
from("${project.projectDir.absolutePath}/src/main/resources/themes/") {
into("${ext.get("debugResource")}/${ext.get("vscodePlugin")}/integrations/theme/default-themes/")
Expand All @@ -226,14 +227,14 @@ tasks {
if (!depfile.exists()) {
throw IllegalStateException("missing prodDep.txt")
}

// Handle platform.zip for release mode
if (ext.get("debugMode") == "release") {
val platformZip = File("platform.zip")
if (!platformZip.exists() || platformZip.length() < 1024 * 1024) {
throw IllegalStateException("platform.zip file does not exist or is smaller than 1MB. This file is supported through git lfs and needs to be obtained through git lfs")
}

// Extract platform.zip to the platform subdirectory under the project build directory
val platformDir = File("${layout.buildDirectory.get().asFile}/platform")
platformDir.mkdirs()
Expand All @@ -243,11 +244,11 @@ tasks {
}
}
}

val vscodePluginDir = File("./plugins/${ext.get("vscodePlugin")}")
val depfile = File("prodDep.txt")
val list = mutableListOf<String>()

// Read dependencies during execution
doFirst {
depfile.readLines().forEach { line ->
Expand All @@ -273,7 +274,7 @@ tasks {

// Copy VSCode plugin extension
from("${vscodePluginDir.path}/extension") { into("$pluginName/${ext.get("vscodePlugin")}") }

// Copy themes
from("src/main/resources/themes/") { into("$pluginName/${ext.get("vscodePlugin")}/integrations/theme/default-themes/") }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@ object InlineCompletionConstants {
* VSCode extension command ID for inline completion generation.
*/
const val EXTERNAL_COMMAND_ID = "kilo-code.jetbrains.getInlineCompletions"


/**
* Command ID registered in the VSCode extension for tracking acceptance events.
* This matches the command registered in GhostInlineCompletionProvider.
*/
const val INLINE_COMPLETION_ACCEPTED_COMMAND = "kilocode.ghost.inline-completion.accepted"

/**
* Default timeout in milliseconds for inline completion requests.
* Set to 10 seconds to allow sufficient time for LLM response.
*/
const val RPC_TIMEOUT_MS = 10000L
}
}
Loading