diff --git a/flake.lock b/flake.lock index 81ddb90..34a7811 100644 --- a/flake.lock +++ b/flake.lock @@ -688,6 +688,22 @@ "type": "github" } }, + "opencode-claude-bridge": { + "flake": false, + "locked": { + "lastModified": 1774233188, + "narHash": "sha256-Fs4/wK+jq8mEf818bXyO95rfFqAXPLMDJKtHbokxQwA=", + "owner": "dotCipher", + "repo": "opencode-claude-bridge", + "rev": "30fc53b9c4f0cc7b0d351e5744e819e015f7fb8b", + "type": "github" + }, + "original": { + "owner": "dotCipher", + "repo": "opencode-claude-bridge", + "type": "github" + } + }, "pre-commit": { "inputs": { "flake-compat": "flake-compat_2", @@ -730,6 +746,7 @@ "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", "noctalia": "noctalia", + "opencode-claude-bridge": "opencode-claude-bridge", "rust-overlay": "rust-overlay", "zen-browser": "zen-browser" } diff --git a/flake.nix b/flake.nix index 67720b7..7a15588 100644 --- a/flake.nix +++ b/flake.nix @@ -92,6 +92,11 @@ claude-code = { url = "github:sadjow/claude-code-nix"; }; + + opencode-claude-bridge = { + url = "github:dotCipher/opencode-claude-bridge"; + flake = false; + }; }; outputs = diff --git a/home-manager/progs/opencode.nix b/home-manager/progs/opencode.nix index a404b17..3882b4f 100644 --- a/home-manager/progs/opencode.nix +++ b/home-manager/progs/opencode.nix @@ -11,6 +11,25 @@ let opus-model = "anthropic/claude-opus-4-6"; + opencode-claude-bridge = pkgs.buildNpmPackage { + pname = "opencode-claude-bridge"; + version = "1.4.2"; + src = inputs.opencode-claude-bridge; + npmDepsHash = "sha256-ObXygd33J2PC9N3gKNtkv8mXQFKBm6Kayr37NpZQsgA="; + buildPhase = '' + runHook preBuild + npx tsc + runHook postBuild + ''; + # the plugin entry point is dist/index.js + installPhase = '' + runHook preInstall + mkdir -p $out/lib/opencode-claude-bridge + cp -r dist $out/lib/opencode-claude-bridge/ + runHook postInstall + ''; + }; + ohMyOpencodeConfig = { "$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"; @@ -60,6 +79,9 @@ in xdg.configFile."opencode/plugins/oh-my-opencode.js".source = "${oh-my-opencode-pkg}/lib/oh-my-opencode/dist/index.js"; + xdg.configFile."opencode/plugins/opencode-claude-bridge.js".source = + "${opencode-claude-bridge}/lib/opencode-claude-bridge/dist/index.js"; + xdg.configFile."opencode/skills/playwright.md".text = let browsers = pkgs.playwright-driver.browsers; @@ -175,7 +197,7 @@ in autoshare = false; autoupdate = false; agent = { }; - plugin = [ "opencode-claude-auth" ]; + plugin = [ ]; provider = { openrouter = { models = {