old
1{den, ...}: {
2 den.aspects.develop.agents.opencode = {
3 includes = [den.aspects.develop.agents];
4
5 persistHome = {config, ...}: {
6 directories = [
7 "${config.xdg.configHome}/opencode"
8 ];
9 };
10
11 cacheHome = {config, ...}: {
12 directories = [
13 "${config.xdg.dataHome}/opencode"
14 "${config.xdg.stateHome}/opencode"
15 ];
16 };
17
18 hjem = {
19 config,
20 pkgs,
21 ...
22 }: {
23 packages = [pkgs.llm-agents.opencode];
24
25 xdg.config.files."opencode/opencode.json" = {
26 generator = (pkgs.formats.json {}).generate "opencode-config.json";
27 value = {
28 permission = {
29 external_directory = {
30 "/nix/store/**" = "allow";
31 };
32 edit = {
33 "*" = "ask";
34 "/nix/store/**" = "deny";
35 };
36 grep = {
37 "/nix/store" = "deny";
38 };
39 webfetch = "ask";
40 };
41 mcp = {
42 deepwiki = {
43 type = "remote";
44 url = "https://mcp.deepwiki.com/mcp";
45 };
46 };
47 formatter = {
48 alejandra = {
49 command = ["alejandra" "$FILE"];
50 extensions = [".nix"];
51 };
52 };
53 plugin = [
54 "opencode-wakatime"
55 "@simonwjackson/opencode-direnv"
56 ];
57 };
58 };
59
60 xdg.config.files."opencode/tui.json" = {
61 generator = (pkgs.formats.json {}).generate "opencode-config-tui.json";
62 value = {
63 };
64 };
65
66 xdg.config.files."opencode/skills" = {
67 source = "${config.xdg.config.directory}/agents/skills";
68 };
69 };
70 };
71
72 den.aspects.develop.opencode.themes = {
73 catppuccin = {
74 hjem.xdg.config.files."opencode/tui.json".value.theme = "catppuccin";
75 };
76 };
77}