feat: re-add opencode-desktop as pass-through from anomalyco/opencode
Expose the opencode-desktop Electron app as a package via a pure pass-through from a new 'opencode' flake input (github:anomalyco/opencode/dev). The input intentionally does NOT follow nixpkgs: upstream pins a node_modules fixed-output derivation hash in nix/hashes.json against its own nixpkgs snapshot, so following would risk FOD hash mismatches. - flake.nix: add 'opencode' input (own nixpkgs, dev branch) - pkgs/default.nix: opencode-desktop pass-through - docs/packages/opencode.md + README.md: refreshed (Electron, not Tauri) - CHANGELOG: unreleased entry Verified: nix flake show lists opencode-desktop (all 4 systems); output opencode-desktop-1.18.9+f720490 builds & wraps electron-41.
This commit is contained in:
@@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- `opencode-desktop` re-added as a pure pass-through from the `anomalyco/opencode` flake input (Electron app, tracked on `dev`); the input intentionally does not follow nixpkgs so upstream's `node_modules` FOD hashes stay valid
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- `openwork` 0.17.30: upstream renamed desktop/icon assets from `@openworkdesktop.{desktop,png}` to `openwork.{desktop,png}` and dropped the `Icon=`/`--no-sandbox` substitutions that are no longer needed
|
- `openwork` 0.17.30: upstream renamed desktop/icon assets from `@openworkdesktop.{desktop,png}` to `openwork.{desktop,png}` and dropped the `Icon=`/`--no-sandbox` substitutions that are no longer needed
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ These packages are imported directly from flake inputs with minor modifications:
|
|||||||
|
|
||||||
| Package | Source | Modification | Location |
|
| Package | Source | Modification | Location |
|
||||||
|---------|--------|-------------|----------|
|
|---------|--------|-------------|----------|
|
||||||
| `opencode-desktop` | `inputs.opencode` | Tauri desktop wrapper + Wayland fix | `pkgs/opencode-desktop/` |
|
| `opencode-desktop` | `inputs.opencode` | Electron desktop app (pure pass-through) | `pkgs/default.nix` |
|
||||||
|
|
||||||
## Adding Package Documentation
|
## Adding Package Documentation
|
||||||
|
|
||||||
|
|||||||
+41
-22
@@ -1,37 +1,56 @@
|
|||||||
# opencode (Deprecated)
|
# opencode & opencode-desktop
|
||||||
|
|
||||||
> **Note**: The `opencode` package has been removed from this repository.
|
## opencode (CLI)
|
||||||
|
|
||||||
## Why was it removed?
|
The standalone `opencode` CLI is **not** packaged here. Use the well-maintained
|
||||||
|
upstream flake instead:
|
||||||
OpenCode (CLI version) has been removed because there is now a well-maintained upstream repository for AI coding tools:
|
|
||||||
|
|
||||||
**[numtide/llm-agents.nix](https://github.com/numtide/llm-agents.nix)**
|
**[numtide/llm-agents.nix](https://github.com/numtide/llm-agents.nix)**
|
||||||
|
|
||||||
This repository provides Nix packages for various AI coding agents, including OpenCode and others, with active maintenance and updates.
|
|
||||||
|
|
||||||
## What should I use instead?
|
|
||||||
|
|
||||||
Use the [llm-agents.nix](https://github.com/numtide/llm-agents.nix) flake directly:
|
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs.llm-agents.url = "github:numtide/llm-agents.nix";
|
||||||
llm-agents.url = "github:numtide/llm-agents.nix";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = { inputs, ... }: {
|
|
||||||
# Access packages via inputs.llm-agents.packages.${system}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Or run directly:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nix run github:numtide/llm-agents.nix#opencode
|
nix run github:numtide/llm-agents.nix#opencode
|
||||||
```
|
```
|
||||||
|
|
||||||
## What about opencode-desktop?
|
## opencode-desktop
|
||||||
|
|
||||||
The `opencode-desktop` package remains available in this repository as it includes a Wayland support workaround for [upstream issue #11755](https://github.com/opencode-ai/opencode/issues/11755). Once this issue is resolved upstream, `opencode-desktop` may also be removed in favor of the llm-agents.nix repository.
|
`opencode-desktop` is provided as a **pure pass-through** from the upstream
|
||||||
|
flake input [`anomalyco/opencode`](https://github.com/anomalyco/opencode)
|
||||||
|
(tracked on the `dev` branch). It is the official Electron desktop app built
|
||||||
|
upstream via `nix/desktop.nix`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix build git+https://code.m3ta.dev/m3tam3re/nixpkgs#opencode-desktop
|
||||||
|
nix run git+https://code.m3ta.dev/m3tam3re/nixpkgs#opencode-desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
### How it is wired
|
||||||
|
|
||||||
|
- **Flake input** (`flake.nix`):
|
||||||
|
|
||||||
|
```nix
|
||||||
|
opencode.url = "github:anomalyco/opencode/dev";
|
||||||
|
```
|
||||||
|
|
||||||
|
It intentionally does **not** follow this repo's `nixpkgs`: upstream pins a
|
||||||
|
`node_modules` fixed-output derivation hash in `nix/hashes.json` against its
|
||||||
|
own nixpkgs snapshot, so following would risk FOD hash mismatches.
|
||||||
|
|
||||||
|
- **Registry** (`pkgs/default.nix`):
|
||||||
|
|
||||||
|
```nix
|
||||||
|
opencode-desktop = inputs.opencode.packages.${system}.opencode-desktop;
|
||||||
|
```
|
||||||
|
|
||||||
|
No local derivation exists — the package is imported as-is.
|
||||||
|
|
||||||
|
### Wayland
|
||||||
|
|
||||||
|
The upstream wrapper already passes `--ozone-platform-hint=auto` (plus Wayland
|
||||||
|
window decorations and IME flags) when `NIXOS_OZONE_WL` is set, so no local
|
||||||
|
Wayland wrapper is required.
|
||||||
|
|||||||
Generated
+36
@@ -69,6 +69,41 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1776683584,
|
||||||
|
"narHash": "sha256-NuTLMrr10Tng72hurYG8jYQ4XKK8wnpJmOGcPiis96g=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9dd5558b06dbdacbf635a3dd36dce1b1a7ee3a89",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"opencode": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1785386452,
|
||||||
|
"narHash": "sha256-iYfkMmn1ZKbi0cv8XIAXVgPH4idzsVSK4cWyi/KGMJQ=",
|
||||||
|
"owner": "anomalyco",
|
||||||
|
"repo": "opencode",
|
||||||
|
"rev": "f7204902192624481e526b1852cdedaadb914e24",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "anomalyco",
|
||||||
|
"ref": "dev",
|
||||||
|
"repo": "opencode",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"openspec": {
|
"openspec": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -95,6 +130,7 @@
|
|||||||
"basecamp": "basecamp",
|
"basecamp": "basecamp",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-master": "nixpkgs-master",
|
"nixpkgs-master": "nixpkgs-master",
|
||||||
|
"opencode": "opencode",
|
||||||
"openspec": "openspec"
|
"openspec": "openspec"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,13 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# opencode - open-source coding agent; provides the opencode-desktop
|
||||||
|
# Electron app. NOTE: intentionally does NOT follow nixpkgs. Upstream
|
||||||
|
# pins a node_modules fixed-output derivation hash in nix/hashes.json
|
||||||
|
# against its own nixpkgs snapshot; following would risk FOD hash
|
||||||
|
# mismatches. Tracking the `dev` default branch (flake.lock pins the rev).
|
||||||
|
opencode.url = "github:anomalyco/opencode/dev";
|
||||||
|
|
||||||
# Agent definitions and coding rules
|
# Agent definitions and coding rules
|
||||||
agents = {
|
agents = {
|
||||||
url = "git+https://code.m3ta.dev/m3tam3re/AGENTS";
|
url = "git+https://code.m3ta.dev/m3tam3re/AGENTS";
|
||||||
|
|||||||
+2
-1
@@ -3,7 +3,7 @@
|
|||||||
# Flake inputs used:
|
# Flake inputs used:
|
||||||
# inputs.basecamp → basecamp (pass-through)
|
# inputs.basecamp → basecamp (pass-through)
|
||||||
# inputs.openspec → openspec (pass-through)
|
# inputs.openspec → openspec (pass-through)
|
||||||
# inputs.opencode → opencode-desktop (build inputs + patches)
|
# inputs.opencode → opencode-desktop (Electron desktop app, pure pass-through)
|
||||||
# inputs.agents → not used directly here (used by lib/)
|
# inputs.agents → not used directly here (used by lib/)
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
@@ -39,4 +39,5 @@ in {
|
|||||||
|
|
||||||
basecamp = inputs.basecamp.packages.${system}.default;
|
basecamp = inputs.basecamp.packages.${system}.default;
|
||||||
openspec = inputs.openspec.packages.${system}.default;
|
openspec = inputs.openspec.packages.${system}.default;
|
||||||
|
opencode-desktop = inputs.opencode.packages.${system}.opencode-desktop;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user