Skip to content

Commit c5fa177

Browse files
feat: add Nix flake for reproducible development environment
1 parent 802b40a commit c5fa177

5 files changed

Lines changed: 455 additions & 5 deletions

File tree

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ logs
4141
# Turborepo
4242
.turbo
4343

44+
# Nix
45+
result
46+
result-*
47+
.direnv
48+
4449
# IntelliJ and Qodo plugin folders
4550
.idea/
4651
.qodo/

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
- Fix: Reset invalid model selection when using OpenAI Codex provider (PR #10777 by @hannesrudolph)
77
- Fix: Add openai-codex to providers that don't require an API key (PR #10786 by @roomote)
88
- Fix: Detect Gemini models with space-separated names for proper thought signature injection in LiteLLM (PR #10787 by @daniel-lxs)
9+
- Add Nix flake for reproducible development environment with Node.js, pnpm, and native build dependencies
910

1011
## [3.41.1] - 2026-01-16
1112

README.md

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
- [简体中文](locales/zh-CN/README.md)
3636
- [繁體中文](locales/zh-TW/README.md)
3737
- ...
38-
</details>
38+
</details>
3939

4040
---
4141

@@ -66,10 +66,10 @@ Learn more: [Using Modes](https://docs.roocode.com/basic-usage/using-modes) •
6666

6767
<div align="center">
6868

69-
| | | |
70-
| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
71-
| <a href="https://www.youtube.com/watch?v=Mcq3r1EPZ-4"><img src="https://img.youtube.com/vi/Mcq3r1EPZ-4/maxresdefault.jpg" width="100%"></a><br><b>Installing Roo Code</b> | <a href="https://www.youtube.com/watch?v=ZBML8h5cCgo"><img src="https://img.youtube.com/vi/ZBML8h5cCgo/maxresdefault.jpg" width="100%"></a><br><b>Configuring Profiles</b> | <a href="https://www.youtube.com/watch?v=r1bpod1VWhg"><img src="https://img.youtube.com/vi/r1bpod1VWhg/maxresdefault.jpg" width="100%"></a><br><b>Codebase Indexing</b> |
72-
| <a href="https://www.youtube.com/watch?v=iiAv1eKOaxk"><img src="https://img.youtube.com/vi/iiAv1eKOaxk/maxresdefault.jpg" width="100%"></a><br><b>Custom Modes</b> | <a href="https://www.youtube.com/watch?v=Ho30nyY332E"><img src="https://img.youtube.com/vi/Ho30nyY332E/maxresdefault.jpg" width="100%"></a><br><b>Checkpoints</b> | <a href="https://www.youtube.com/watch?v=HmnNSasv7T8"><img src="https://img.youtube.com/vi/HmnNSasv7T8/maxresdefault.jpg" width="100%"></a><br><b>Context Management</b> |
69+
| | | |
70+
| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
71+
| <a href="https://www.youtube.com/watch?v=Mcq3r1EPZ-4"><img src="https://img.youtube.com/vi/Mcq3r1EPZ-4/maxresdefault.jpg" width="100%"></a><br><b>Installing Roo Code</b> | <a href="https://www.youtube.com/watch?v=ZBML8h5cCgo"><img src="https://img.youtube.com/vi/ZBML8h5cCgo/maxresdefault.jpg" width="100%"></a><br><b>Configuring Profiles</b> | <a href="https://www.youtube.com/watch?v=r1bpod1VWhg"><img src="https://img.youtube.com/vi/r1bpod1VWhg/maxresdefault.jpg" width="100%"></a><br><b>Codebase Indexing</b> |
72+
| <a href="https://www.youtube.com/watch?v=iiAv1eKOaxk"><img src="https://img.youtube.com/vi/iiAv1eKOaxk/maxresdefault.jpg" width="100%"></a><br><b>Custom Modes</b> | <a href="https://www.youtube.com/watch?v=Ho30nyY332E"><img src="https://img.youtube.com/vi/Ho30nyY332E/maxresdefault.jpg" width="100%"></a><br><b>Checkpoints</b> | <a href="https://www.youtube.com/watch?v=HmnNSasv7T8"><img src="https://img.youtube.com/vi/HmnNSasv7T8/maxresdefault.jpg" width="100%"></a><br><b>Context Management</b> |
7373

7474
</div>
7575
<p align="center">
@@ -149,6 +149,32 @@ If you prefer to install the VSIX package manually:
149149
code --install-extension bin/roo-cline-<version>.vsix
150150
```
151151

152+
### Nix Flake
153+
154+
A `flake.nix` is provided for [Nix](https://nixos.org/) users:
155+
156+
```sh
157+
nix develop # Enter dev shell with all dependencies
158+
pnpm install # Install npm packages
159+
pnpm build # Build the project
160+
pnpm test # Run tests
161+
pnpm vsix # Create VSIX package
162+
```
163+
164+
To build and install the extension directly:
165+
166+
```sh
167+
nix build .#vsix && code --install-extension result/*.vsix
168+
```
169+
170+
The dev shell provides Node.js 20.x, pnpm, ripgrep, and build tools for native modules.
171+
172+
After updating dependencies, run `nix run .#update-deps` to update `flake.lock` and the pnpm dependency hash.
173+
174+
If flakes aren't enabled, prefix commands with: `nix --extra-experimental-features 'nix-command flakes' <command>`
175+
176+
> **Note:** Roo Code is also available as a pre-built extension in [nixpkgs](https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/applications/editors/vscode/extensions/rooveterinaryinc.roo-cline/default.nix) via `vscode-extensions.rooveterinaryinc.roo-cline`.
177+
152178
---
153179
154180
We use [changesets](https://github.com/changesets/changesets) for versioning and publishing. Check our `CHANGELOG.md` for release notes.

flake.lock

Lines changed: 61 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)