Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1265c49
feat(web-search): add LangSearch provider and reranking
lucasfelipe24 Jul 18, 2026
7ed2c11
fix(web-search): preserve provider fallback credentials
lucasfelipe24 Jul 18, 2026
87956bc
feat: add personal local build script and documentation
lucasfelipe24 Jul 18, 2026
32a2a6b
feat: add 16 domain expertise skill bundles as built-in skills
lucasfelipe24 Jul 19, 2026
8698a52
fix: escape require and import patterns in skill content to pass nati…
lucasfelipe24 Jul 19, 2026
2ee52b0
a
lucasfelipe24 Jul 19, 2026
f12b0b0
Merge remote-tracking branch 'upstream/main' into personal
lucasfelipe24 Jul 19, 2026
c53ac03
fix: unlink native binary before copy to avoid ETXTBSY during SEA build
lucasfelipe24 Jul 19, 2026
02ecf28
feat: make built-in skill bundles model-invocable and document Skill …
lucasfelipe24 Jul 20, 2026
17f7771
Merge remote-tracking branch 'upstream/main' into personal
lucasfelipe24 Jul 20, 2026
b447ad1
feat: add when-to-use triggers to built-in skills and enforce skill l…
lucasfelipe24 Jul 20, 2026
fed2f97
feat: restore bundled reference material for built-in domain skills
lucasfelipe24 Jul 20, 2026
4982cc2
fix: resolve file URLs correctly for non-ASCII workspace paths
lucasfelipe24 Jul 20, 2026
a49c4ac
Merge remote-tracking branch 'upstream/main' into personal
lucasfelipe24 Jul 21, 2026
f0b5b89
Merge remote-tracking branch 'upstream/main' into personal
lucasfelipe24 Jul 22, 2026
9fffd5b
feat(plugins): vendor image_generation and audio_generation as offici…
lucasfelipe24 Jul 22, 2026
71405d6
feat: remove built-in domain expertise skill bundles
lucasfelipe24 Jul 23, 2026
2d1bfc2
Merge remote-tracking branch 'upstream/main' into personal
lucasfelipe24 Jul 24, 2026
4327acf
Merge branch 'main' into personal
lucasfelipe24 Jul 27, 2026
427e12d
.
lucasfelipe24 Jul 27, 2026
adc6853
feat: experimental dynamic workflows — runtime, TUI, SDK, mode, autoc…
lucasfelipe24 Jul 27, 2026
3d57663
fix: address code review — sync timeout in vm runtime, flag gate for …
lucasfelipe24 Jul 27, 2026
b40dc59
feat: add kap-server REST routes and klient contracts for workflow v2…
lucasfelipe24 Jul 27, 2026
c64223e
feat(web): add workflow system UI and server-side workflow mode wiring
lucasfelipe24 Jul 27, 2026
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
5 changes: 5 additions & 0 deletions .changeset/add-langsearch-web-search.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@moonshot-ai/kimi-code": minor
---

Add configurable LangSearch web search and optional semantic reranking. Configure it under Settings → Web Search or with `kimi search`.
7 changes: 7 additions & 0 deletions .changeset/dynamic-workflows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@moonshot-ai/kimi-code": minor
---

Add experimental dynamic workflows: multi-phase subagent orchestration from user-approved JS scripts, with background runs, progress tracking, cancellation, and project/user-level reuse. Enable with KIMI_CODE_EXPERIMENTAL_DYNAMIC_WORKFLOWS=1, then run /workflow.

Also add the `/workflow on|off` mode that instructs the agent to propose dynamic workflows for large tasks, dynamic argument autocomplete listing available workflows after `/workflow run`, a `wf` mode badge in the footer, and workflow visibility in the `/tasks` browser.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ docs/superpowers/
reports/
.superpowers/
/plan/

app-kimi/
app-gpt/
# Agent scratch / throwaway files - do not commit
.tmp/
HANDOVER*.md
Expand Down
8 changes: 8 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,14 @@
"vitest/no-standalone-expect": "error",
"vitest/warn-todo": "off"
}
},
{
"files": ["scripts/use-personal-build.mjs"],
"rules": {
"eslint/no-console": "off",
"unicorn/prefer-top-level-await": "off",
"unicorn/prefer-import-meta-properties": "off"
}
}
],
"ignorePatterns": [
Expand Down
73 changes: 73 additions & 0 deletions PERSONAL_BUILD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Build pessoal do Kimi Code

Este guia explica como compilar e usar o Kimi Code diretamente da source deste fork, sem depender do binário oficial da Moonshot.

## Quando usar

- Você quer rodar sua própria build a partir da branch `personal`.
- Você quer que o comando `kimi` aponte sempre para o executável gerado neste repositório.
- Você quer evitar que o atualizador oficial substitua seu binário personalizado.

## Pré-requisitos

- Node.js `>= 24.15.0`
- pnpm `10.33.0` (o repositório usa `corepack`)
- Sistema: Linux x64 ou Windows x64

## Comando principal

Na raiz do repositório, na branch `personal`:

```bash
node scripts/use-personal-build.mjs
```

O script vai:

1. Validar Node.js, pnpm e plataforma.
2. Instalar dependências (`pnpm install --frozen-lockfile`).
3. Compilar os assets web.
4. Compilar o executável nativo SEA (`build:native:sea`).
5. Rodar o smoke test nativo.
6. Substituir `~/.kimi-code/bin/kimi` por um launcher que aponta para o binário deste clone.
7. Desativar atualizações oficiais via `KIMI_CODE_NO_AUTO_UPDATE=1`.
8. Garantir que `~/.kimi-code/bin` esteja no PATH.

## Dry run

Para ver o que seria feito sem alterar nada:

```bash
node scripts/use-personal-build.mjs --dry-run
```

## Atualizar depois de puxar do upstream

```bash
git fetch upstream
git rebase upstream/main # ou merge, se preferir
node scripts/use-personal-build.mjs
```

## Usar em outro computador

1. Clone este fork e entre na branch `personal`.
2. Instale Node.js `>= 24.15.0` e ative o corepack:
```bash
corepack enable
corepack prepare pnpm@10.33.0 --activate
```
3. Rode:
```bash
node scripts/use-personal-build.mjs
```

Suas configurações (`~/.kimi-code/config.toml`), credenciais, sessões e plugins serão preservadas.

## Por que não `pnpm build`?

O comando `pnpm build` do root compila pacotes e assets, mas **não gera o executável nativo SEA**. Para produzir o binário `kimi`/`kimi.exe` é necessário rodar `build:native:sea`, que é exatamente o que o script `use-personal-build.mjs` faz, seguindo o mesmo fluxo do workflow oficial de release nativa.

## Windows

No Windows o script remove `~/.kimi-code/bin/kimi.exe` e cria `~/.kimi-code/bin/kimi.cmd` apontando para o `.exe` gerado no clone. A atualização do PATH é feita via PowerShell. Abra um novo terminal após rodar o script.
3 changes: 2 additions & 1 deletion apps/kimi-code/scripts/native/01-bundle.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { createRequire } from 'node:module';
import { resolve } from 'node:path';
import { pathToFileURL } from 'node:url';

import { run } from './exec.mjs';

Expand All @@ -18,6 +19,6 @@ export async function runBundleStep() {
await run(process.execPath, [checkBundlePath]);
}

if (import.meta.url === `file://${process.argv[1]}`) {
if (process.argv[1] !== undefined && import.meta.url === pathToFileURL(process.argv[1]).href) {
await runBundleStep();
}
6 changes: 5 additions & 1 deletion apps/kimi-code/scripts/native/03-inject.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { copyFile, mkdir, stat } from 'node:fs/promises';
import { copyFile, mkdir, rm, stat } from 'node:fs/promises';
import { resolve } from 'node:path';

import { fail, run, tryRun } from './exec.mjs';
Expand Down Expand Up @@ -27,6 +27,10 @@ async function ensureBlobExists() {
async function copyNodeExecutable(target) {
await mkdir(nativeBinDir(target), { recursive: true });
const out = nativeBinPath(target);
// Unlink first: overwriting a currently-running binary fails with ETXTBSY on
// Linux. Removing the path detaches the running process from it (it keeps
// the old inode), so the fresh copy can be written.
await rm(out, { force: true });
await copyFile(process.execPath, out);
if (process.platform !== 'win32') {
await run('chmod', ['755', out]);
Expand Down
2 changes: 2 additions & 0 deletions apps/kimi-code/src/cli/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { registerDoctorCommand } from './sub/doctor';
import { registerExportCommand } from './sub/export';
import { registerLoginCommand } from './sub/login';
import { registerProviderCommand } from './sub/provider';
import { registerSearchCommand } from './sub/search';
import { registerVisCommand } from './sub/vis';
import { registerWebCommand } from './sub/web';

Expand Down Expand Up @@ -115,6 +116,7 @@ export function createProgram(

registerExportCommand(program);
registerProviderCommand(program);
registerSearchCommand(program);
registerAcpCommand(program);
registerWebCommand(program);
registerLoginCommand(program);
Expand Down
Loading