this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: opencode

+430 -13
+101 -6
flake.lock
··· 75 75 "url": "ssh://gitea@git.sealight.xyz/aynish/basant" 76 76 } 77 77 }, 78 + "blueprint": { 79 + "inputs": { 80 + "nixpkgs": [ 81 + "llm-agents", 82 + "nixpkgs" 83 + ], 84 + "systems": "systems_5" 85 + }, 86 + "locked": { 87 + "lastModified": 1763308703, 88 + "narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=", 89 + "owner": "numtide", 90 + "repo": "blueprint", 91 + "rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f", 92 + "type": "github" 93 + }, 94 + "original": { 95 + "owner": "numtide", 96 + "repo": "blueprint", 97 + "type": "github" 98 + } 99 + }, 78 100 "brew-src": { 79 101 "flake": false, 80 102 "locked": { ··· 433 455 }, 434 456 "flake-utils_5": { 435 457 "inputs": { 436 - "systems": "systems_5" 458 + "systems": "systems_6" 437 459 }, 438 460 "locked": { 439 461 "lastModified": 1694529238, ··· 708 730 "type": "github" 709 731 } 710 732 }, 733 + "llm-agents": { 734 + "inputs": { 735 + "blueprint": "blueprint", 736 + "nixpkgs": "nixpkgs_3", 737 + "treefmt-nix": "treefmt-nix_2" 738 + }, 739 + "locked": { 740 + "lastModified": 1765594737, 741 + "narHash": "sha256-9r+CxptJlqTdREkSHA1pxc3oZYnpgYNkAymkQLB0R8w=", 742 + "owner": "numtide", 743 + "repo": "llm-agents.nix", 744 + "rev": "fb30f7dd63c0c7227c4b80a4dbfb6765f4b9a900", 745 + "type": "github" 746 + }, 747 + "original": { 748 + "owner": "numtide", 749 + "repo": "llm-agents.nix", 750 + "type": "github" 751 + } 752 + }, 711 753 "lowdown-src": { 712 754 "flake": false, 713 755 "locked": { ··· 822 864 "devshell": "devshell", 823 865 "flake-compat": "flake-compat_3", 824 866 "nixlib": "nixlib", 825 - "nixpkgs": "nixpkgs_3" 867 + "nixpkgs": "nixpkgs_4" 826 868 }, 827 869 "locked": { 828 870 "lastModified": 1683490239, ··· 975 1017 }, 976 1018 "nixpkgs_3": { 977 1019 "locked": { 1020 + "lastModified": 1765425892, 1021 + "narHash": "sha256-jlQpSkg2sK6IJVzTQBDyRxQZgKADC2HKMRfGCSgNMHo=", 1022 + "owner": "NixOS", 1023 + "repo": "nixpkgs", 1024 + "rev": "5d6bdbddb4695a62f0d00a3620b37a15275a5093", 1025 + "type": "github" 1026 + }, 1027 + "original": { 1028 + "owner": "NixOS", 1029 + "ref": "nixpkgs-unstable", 1030 + "repo": "nixpkgs", 1031 + "type": "github" 1032 + } 1033 + }, 1034 + "nixpkgs_4": { 1035 + "locked": { 978 1036 "lastModified": 1662099760, 979 1037 "narHash": "sha256-MdZLCTJPeHi/9fg6R9fiunyDwP3XHJqDd51zWWz9px0=", 980 1038 "owner": "NixOS", ··· 989 1047 "type": "github" 990 1048 } 991 1049 }, 992 - "nixpkgs_4": { 1050 + "nixpkgs_5": { 993 1051 "locked": { 994 1052 "lastModified": 1758791193, 995 1053 "narHash": "sha256-F8WmEwFoHsnix7rt290R0rFXNJiMbClMZyIC/e+HYf0=", ··· 1005 1063 "type": "github" 1006 1064 } 1007 1065 }, 1008 - "nixpkgs_5": { 1066 + "nixpkgs_6": { 1009 1067 "locked": { 1010 1068 "lastModified": 1758690382, 1011 1069 "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", ··· 1024 1082 "nur": { 1025 1083 "inputs": { 1026 1084 "flake-parts": "flake-parts_2", 1027 - "nixpkgs": "nixpkgs_5" 1085 + "nixpkgs": "nixpkgs_6" 1028 1086 }, 1029 1087 "locked": { 1030 1088 "lastModified": 1759117007, ··· 1106 1164 "homebrew-cask": "homebrew-cask", 1107 1165 "homebrew-core": "homebrew-core", 1108 1166 "jovian": "jovian", 1167 + "llm-agents": "llm-agents", 1109 1168 "nix-homebrew": "nix-homebrew", 1110 1169 "nix-matrix-appservices": "nix-matrix-appservices", 1111 1170 "nixos-hardware": "nixos-hardware", 1112 - "nixpkgs": "nixpkgs_4", 1171 + "nixpkgs": "nixpkgs_5", 1113 1172 "nur": "nur", 1114 1173 "poonam": "poonam", 1115 1174 "rust-overlay": "rust-overlay", ··· 1260 1319 "type": "github" 1261 1320 } 1262 1321 }, 1322 + "systems_6": { 1323 + "locked": { 1324 + "lastModified": 1681028828, 1325 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 1326 + "owner": "nix-systems", 1327 + "repo": "default", 1328 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 1329 + "type": "github" 1330 + }, 1331 + "original": { 1332 + "owner": "nix-systems", 1333 + "repo": "default", 1334 + "type": "github" 1335 + } 1336 + }, 1263 1337 "tangled": { 1264 1338 "inputs": { 1265 1339 "flake-compat": "flake-compat_4", ··· 1341 1415 "owner": "numtide", 1342 1416 "repo": "treefmt-nix", 1343 1417 "rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1", 1418 + "type": "github" 1419 + }, 1420 + "original": { 1421 + "owner": "numtide", 1422 + "repo": "treefmt-nix", 1423 + "type": "github" 1424 + } 1425 + }, 1426 + "treefmt-nix_2": { 1427 + "inputs": { 1428 + "nixpkgs": [ 1429 + "llm-agents", 1430 + "nixpkgs" 1431 + ] 1432 + }, 1433 + "locked": { 1434 + "lastModified": 1762938485, 1435 + "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=", 1436 + "owner": "numtide", 1437 + "repo": "treefmt-nix", 1438 + "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4", 1344 1439 "type": "github" 1345 1440 }, 1346 1441 "original": {
+12 -1
flake.nix
··· 1 1 { 2 2 description = "Sealight NixOS Config"; 3 3 4 + nixConfig = { 5 + extra-substituters = [ "https://cache.numtide.com" ]; 6 + extra-trusted-public-keys = [ "niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g=" ]; 7 + }; 8 + 4 9 inputs = { 5 10 # Nixpkgs 6 11 nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; ··· 71 76 inputs.nixpkgs.follows = "nixpkgs"; 72 77 }; 73 78 79 + # LLM Agents 80 + llm-agents.url = "github:numtide/llm-agents.nix"; 81 + 74 82 # Others 75 83 nur.url = "github:nix-community/NUR"; 76 84 rust-overlay = { ··· 95 103 outputs = { self, nixpkgs, unstable, nixos-hardware, home-manager, deploy-rs 96 104 , agenix, disko, basant, grasp, nix-matrix-appservices, nur, tidalcycles 97 105 , rust-overlay, vimwikicli, autohide-tdrop, darwin, nix-homebrew, homebrew-bundle 98 - , homebrew-core, homebrew-cask, jovian, tangled, ... }@inputs: 106 + , homebrew-core, homebrew-cask, jovian, tangled, llm-agents, ... }@inputs: 99 107 let 100 108 forAllSystems = nixpkgs.lib.genAttrs [ 101 109 "aarch64-linux" ··· 258 266 nix.registry.unstable.flake = unstable; 259 267 home-manager.useGlobalPkgs = true; 260 268 home-manager.useUserPackages = true; 269 + home-manager.extraSpecialArgs = { inherit inputs; }; 261 270 home-manager.users.anish = import ./home/gui; 262 271 } 263 272 ]; ··· 320 329 nix.registry.nixpkgs.flake = nixpkgs; 321 330 home-manager.useGlobalPkgs = true; 322 331 home-manager.useUserPackages = true; 332 + home-manager.extraSpecialArgs = { inherit inputs; }; 323 333 home-manager.users.anish = import ./home/dev; 324 334 } 325 335 ]; ··· 362 372 users.anishlakhwara = import ./home/darwin; 363 373 useGlobalPkgs = true; 364 374 useUserPackages = true; 375 + extraSpecialArgs = { inherit inputs; }; 365 376 }; 366 377 } 367 378 ];
+2 -1
home/darwin/default.nix
··· 1 - { self, pkgs, ... }: 1 + { self, pkgs, inputs, ... }: 2 2 { 3 3 imports = [ 4 4 ../profiles/nvim ··· 8 8 ../profiles/task 9 9 ../profiles/kitty 10 10 ../profiles/tmux 11 + ../profiles/opencode 11 12 # ../profiles/firefox 12 13 ]; 13 14
+2 -2
home/dev/default.nix
··· 1 - { self, pkgs, ... }: { 1 + { self, pkgs, inputs, ... }: { 2 2 imports = 3 - [ ../profiles/cli ../profiles/nvim ../profiles/direnv ../profiles/git ]; 3 + [ ../profiles/cli ../profiles/nvim ../profiles/direnv ../profiles/git ../profiles/opencode ]; 4 4 home.stateVersion = "22.05"; 5 5 }
+2 -1
home/gui/default.nix
··· 1 - { pkgs, ... }: 1 + { pkgs, inputs, ... }: 2 2 { 3 3 imports = [ 4 4 ../core ··· 10 10 ../profiles/sync/kitaab 11 11 ../profiles/ssh 12 12 ../profiles/task 13 + ../profiles/opencode 13 14 ]; 14 15 15 16 # GPG configuration for user session
+141
home/profiles/opencode/agent/librarian.md
··· 1 + --- 2 + description: A specialized codebase understanding agent that helps answer questions about large, complex codebases across GitHub repositories. Use this for exploring multi-repository architectures, understanding code patterns, finding implementations, and analyzing commit history. 3 + mode: subagent 4 + model: anthropic/claude-haiku-4-5 5 + temperature: 0.1 6 + tools: 7 + "*": false 8 + github_*: true 9 + --- 10 + 11 + You are the Librarian, a specialized codebase understanding agent that helps users answer questions about large, complex codebases across repositories. 12 + 13 + Your role is to provide thorough, comprehensive analysis and explanations of code architecture, functionality, and patterns across multiple repositories. 14 + 15 + You are running inside an AI coding system in which you act as a subagent that's used when the main agent needs deep, multi-repository codebase understanding and analysis. 16 + 17 + ## Key Responsibilities 18 + 19 + - Explore repositories to answer questions 20 + - Understand and explain architectural patterns and relationships across repositories 21 + - Find specific implementations and trace code flow across codebases 22 + - Explain how features work end-to-end across multiple repositories 23 + - Understand code evolution through commit history 24 + - Create visual diagrams when helpful for understanding complex systems 25 + 26 + ## Guidelines 27 + 28 + - Use available GitHub MCP tools extensively to explore repositories 29 + - Execute tools in parallel when possible for efficiency 30 + - Read files thoroughly to understand implementation details 31 + - Search for patterns and related code across multiple repositories 32 + - Use commit listing to understand how code evolved over time 33 + - Focus on thorough understanding and comprehensive explanation across repositories 34 + - Create mermaid diagrams to visualize complex relationships or flows 35 + 36 + ## Available Tools (GitHub MCP) 37 + 38 + You have access to the following GitHub MCP tools: 39 + 40 + ### Reading & Exploring 41 + - `github_get_file_contents`: Read file or directory contents from a repository 42 + - For directories, the path must end with `/` 43 + - Parameters: `owner`, `repo`, `path`, `ref` (optional branch/tag) 44 + 45 + - `github_get_repository_tree`: List all files in a repository with optional path filtering 46 + - Use `recursive: true` to get all files 47 + - Use `path_filter` to filter by path prefix 48 + - Parameters: `owner`, `repo`, `recursive`, `path_filter`, `tree_sha` 49 + 50 + - `github_list_branches`: List branches in a repository 51 + - `github_list_tags`: List tags in a repository 52 + 53 + ### Searching 54 + - `github_search_code`: Search for code patterns across repositories 55 + - Use GitHub's search syntax: `pattern repo:owner/repo language:typescript path:src/` 56 + - Combine with AND, OR, NOT operators 57 + - Parameters: `query`, `perPage`, `page` 58 + 59 + - `github_search_repositories`: Find repositories by name, org, language, etc. 60 + - Use query syntax: `name org:orgname language:typescript` 61 + - Parameters: `query`, `perPage`, `page` 62 + 63 + ### Commit History 64 + - `github_list_commits`: View commit history for a repository 65 + - Parameters: `owner`, `repo`, `sha` (branch/tag), `author`, `perPage`, `page` 66 + 67 + - `github_get_commit`: Get detailed commit information including diffs 68 + - Set `include_diff: true` for file changes 69 + - Parameters: `owner`, `repo`, `sha`, `include_diff` 70 + 71 + ## Tool Usage Guidelines 72 + 73 + You should use all available tools to thoroughly explore the codebase before answering. 74 + Use tools in parallel whenever possible for efficiency. 75 + 76 + When searching code, use GitHub's search syntax: 77 + - `"pattern repo:owner/repo"` to search a specific repo 78 + - `"pattern language:typescript"` to filter by language 79 + - `"pattern path:src/"` to filter by directory 80 + - Combine with AND, OR, NOT operators (max 5 operators) 81 + 82 + When exploring file structure: 83 + - Use `github_get_repository_tree` with `recursive: true` to see all files 84 + - Use `github_get_file_contents` with a path ending in `/` to list directory contents 85 + - Read key files like README.md, package.json, or main entry points first 86 + 87 + ## Communication 88 + 89 + You must use Markdown for formatting your responses. 90 + 91 + IMPORTANT: When including code blocks, you MUST ALWAYS specify the language for syntax highlighting. Always add the language identifier after the opening backticks. 92 + 93 + NEVER refer to tools by their names. Example: NEVER say "I can use the github_get_file_contents tool", instead say "I'm going to read the file" 94 + 95 + ### Direct & Detailed Communication 96 + 97 + You should only address the user's specific query or task at hand. Do not investigate or provide information beyond what is necessary to answer the question. 98 + 99 + You must avoid tangential information unless absolutely critical for completing the request. Avoid long introductions, explanations, and summaries. Avoid unnecessary preamble or postamble, unless the user asks you to. 100 + 101 + Answer the user's question directly, without elaboration, explanation, or details. You MUST avoid text before/after your response, such as "The answer is <answer>.", "Here is the content of the file..." or "Based on the information provided, the answer is..." or "Here is what I will do next...". 102 + 103 + You're optimized for thorough understanding and explanation, suitable for documentation and sharing. 104 + 105 + You should be comprehensive but focused, providing clear analysis that helps users understand complex codebases. 106 + 107 + IMPORTANT: Only your last message is returned to the main agent and displayed to the user. Your last message should be comprehensive and include all important findings from your exploration. 108 + 109 + ## Linking 110 + 111 + To make it easy for the user to look into code you are referring to, you always link to the source with markdown links. 112 + 113 + For files or directories, the URL should look like: 114 + `https://github.com/<org>/<repository>/blob/<revision>/<filepath>#L<range>` 115 + 116 + Where: 117 + - `<org>` is the organization or user 118 + - `<repository>` is the repository name 119 + - `<revision>` is the branch or commit SHA (use `main` or `master` if not specified) 120 + - `<filepath>` is the absolute path to the file 121 + - `<range>` is an optional fragment with the line range (e.g., `L32-L42`) 122 + 123 + Example: `https://github.com/foo_org/bar_repo/blob/develop/src/test.py#L32-L42` 124 + 125 + Prefer "fluent" linking style. That is, don't show the user the actual URL, but instead use it to add links to relevant parts (file names, directory names, or repository names) of your response. 126 + 127 + Whenever you mention a file, directory or repository by name, you MUST link to it in this way. ONLY link if the mention is by name. 128 + 129 + ## Examples 130 + 131 + When asked "How does authentication work in the Kubernetes codebase?": 132 + 1. Search for authentication-related code 133 + 2. Read key files to understand the implementation 134 + 3. Trace the code flow 135 + 4. Provide a comprehensive explanation with links to source files 136 + 137 + When asked "Find how database migrations are handled in Rails": 138 + 1. Search the Rails repository for migration-related code 139 + 2. Explore the directory structure 140 + 3. Read migration runner and generator files 141 + 4. Explain the migration system with code references
+52
home/profiles/opencode/default.nix
··· 1 + { pkgs, lib, inputs, ... }: 2 + 3 + let 4 + # Paths to agenix-decrypted secrets (same on Darwin and NixOS) 5 + githubToken = "/run/agenix/github-token"; 6 + anthropicToken = "/run/agenix/anthropicToken"; 7 + 8 + # github-mcp-server binary path from nixpkgs 9 + githubMcpServer = "${pkgs.github-mcp-server}/bin/github-mcp-server"; 10 + in 11 + { 12 + home.packages = [ 13 + pkgs.github-mcp-server 14 + inputs.llm-agents.packages.${pkgs.system}.opencode 15 + inputs.llm-agents.packages.${pkgs.system}.beads 16 + ]; 17 + 18 + # OpenCode configuration directory 19 + xdg.configFile = { 20 + "opencode/opencode.json".text = builtins.toJSON { 21 + "$schema" = "https://opencode.ai/config.json"; 22 + theme = "ayu-mirage"; 23 + autoupdate = false; 24 + permission = { 25 + external_directory = "allow"; 26 + }; 27 + provider = { 28 + anthropic = { 29 + options = { 30 + apiKey = "{file:${anthropicToken}}"; 31 + }; 32 + }; 33 + }; 34 + mcp = { 35 + github = { 36 + type = "local"; 37 + command = [ githubMcpServer "stdio" ]; 38 + environment = { 39 + GITHUB_PERSONAL_ACCESS_TOKEN = "{file:${githubToken}}"; 40 + }; 41 + }; 42 + }; 43 + agent = { 44 + build.tools."github_*" = false; 45 + plan.tools."github_*" = false; 46 + }; 47 + }; 48 + 49 + "opencode/themes/ayu-mirage.json".source = ./themes/ayu-mirage.json; 50 + "opencode/agent/librarian.md".source = ./agent/librarian.md; 51 + }; 52 + }
+80
home/profiles/opencode/themes/ayu-mirage.json
··· 1 + { 2 + "$schema": "https://opencode.ai/theme.json", 3 + "defs": { 4 + "darkBg": "#1f2430", 5 + "darkBgAlt": "#242936", 6 + "darkLine": "#171b24", 7 + "darkPanel": "#1c212b", 8 + "darkFg": "#cccac2", 9 + "darkFgMuted": "#707a8c", 10 + "darkGutter": "#8a919966", 11 + "darkTag": "#5ccfe6", 12 + "darkFunc": "#ffd173", 13 + "darkEntity": "#73d0ff", 14 + "darkString": "#d5ff80", 15 + "darkRegexp": "#95e6cb", 16 + "darkMarkup": "#f28779", 17 + "darkKeyword": "#ffad66", 18 + "darkSpecial": "#ffdfb3", 19 + "darkComment": "#b8cfe680", 20 + "darkConstant": "#dfbfffb3", 21 + "darkOperator": "#f29e7480", 22 + "darkAdded": "#87d96cb3", 23 + "darkRemoved": "#f27983b3", 24 + "darkAccent": "#ffcc66b3", 25 + "darkError": "#ff6666", 26 + "darkIndentActive": "#8a919959" 27 + }, 28 + "theme": { 29 + "primary": "darkEntity", 30 + "secondary": "darkConstant", 31 + "accent": "darkAccent", 32 + "error": "darkError", 33 + "warning": "darkSpecial", 34 + "success": "darkAdded", 35 + "info": "darkTag", 36 + "text": "darkFg", 37 + "textMuted": "darkFgMuted", 38 + "background": "darkBg", 39 + "backgroundPanel": "darkPanel", 40 + "backgroundElement": "darkBgAlt", 41 + "border": "darkGutter", 42 + "borderActive": "darkIndentActive", 43 + "borderSubtle": "darkLine", 44 + "diffAdded": "darkAdded", 45 + "diffRemoved": "darkRemoved", 46 + "diffContext": "darkComment", 47 + "diffHunkHeader": "darkComment", 48 + "diffHighlightAdded": "darkString", 49 + "diffHighlightRemoved": "darkMarkup", 50 + "diffAddedBg": "#20303b", 51 + "diffRemovedBg": "#37222c", 52 + "diffContextBg": "darkPanel", 53 + "diffLineNumber": "darkGutter", 54 + "diffAddedLineNumberBg": "#1b2b34", 55 + "diffRemovedLineNumberBg": "#2d1f26", 56 + "markdownText": "darkFg", 57 + "markdownHeading": "darkConstant", 58 + "markdownLink": "darkEntity", 59 + "markdownLinkText": "darkTag", 60 + "markdownCode": "darkString", 61 + "markdownBlockQuote": "darkSpecial", 62 + "markdownEmph": "darkSpecial", 63 + "markdownStrong": "darkFunc", 64 + "markdownHorizontalRule": "darkFgMuted", 65 + "markdownListItem": "darkEntity", 66 + "markdownListEnumeration": "darkTag", 67 + "markdownImage": "darkEntity", 68 + "markdownImageText": "darkTag", 69 + "markdownCodeBlock": "darkFg", 70 + "syntaxComment": "darkComment", 71 + "syntaxKeyword": "darkKeyword", 72 + "syntaxFunction": "darkFunc", 73 + "syntaxVariable": "darkEntity", 74 + "syntaxString": "darkString", 75 + "syntaxNumber": "darkConstant", 76 + "syntaxType": "darkSpecial", 77 + "syntaxOperator": "darkOperator", 78 + "syntaxPunctuation": "darkFg" 79 + } 80 + }
+10 -1
hosts/box/configuration.nix
··· 91 91 92 92 # Enable the OpenSSH daemon. 93 93 services.openssh.enable = true; 94 - networking.firewall.allowedTCPPorts = [ 22 ]; 94 + networking.firewall.allowedTCPPorts = [ 95 + 22 # SSH 96 + 5003 # opencode-manager backend 97 + 5173 # opencode-manager frontend 98 + 5551 # opencode server 99 + ]; 100 + networking.firewall.allowedTCPPortRanges = [{ 101 + from = 7000; 102 + to = 9000; 103 + }]; # opencode-manager: ports for testing user changes 95 104 96 105 programs.gnupg.agent.enable = true; 97 106 programs.gnupg.agent.pinentryPackage = pkgs.pinentry-curses;
+4
hosts/box/default.nix
··· 66 66 age.secrets.box-wg.file = "${self}/secrets/box-wg.age"; 67 67 age.secrets.box-wg.owner = "anish"; 68 68 age.secrets.borg-key.file = "${self}/secrets/borg-key.age"; 69 + age.secrets.github-token.file = "${self}/secrets/github-token.age"; 70 + age.secrets.github-token.owner = "anish"; 71 + age.secrets.anthropicToken.file = "${self}/secrets/anthropicToken.age"; 72 + age.secrets.anthropicToken.owner = "anish"; 69 73 mossnet.wg = { 70 74 enable = true; 71 75 ips = [ "10.0.69.4/24" ];
+4
hosts/curve/default.nix
··· 85 85 86 86 age.secrets.curve-wg.file = "${self}/secrets/curve-wg.age"; 87 87 age.secrets.curve-wg.owner = "anish"; 88 + age.secrets.github-token.file = "${self}/secrets/github-token.age"; 89 + age.secrets.github-token.owner = "anish"; 90 + age.secrets.anthropicToken.file = "${self}/secrets/anthropicToken.age"; 91 + age.secrets.anthropicToken.owner = "anish"; 88 92 mossnet.wg = { 89 93 enable = true; 90 94 ips = [ "10.0.69.2/24" ];
+5 -1
hosts/darwin/default.nix
··· 1 - { self, pkgs, config, ... }: 1 + { self, pkgs, config, inputs, ... }: 2 2 3 3 { 4 4 imports = [ ··· 22 22 age.identityPaths = [ "/Users/anishlakhwara/.ssh/id_ed25519" ]; 23 23 age.secrets.work-wg.file = "${self}/secrets/work-wg.age"; 24 24 age.secrets.work-wg.owner = "anishlakhwara"; 25 + age.secrets.github-token.file = "${self}/secrets/github-token.age"; 26 + age.secrets.github-token.owner = "anishlakhwara"; 27 + age.secrets.anthropicToken.file = "${self}/secrets/anthropicToken.age"; 28 + age.secrets.anthropicToken.owner = "anishlakhwara"; 25 29 networking.wg-quick.interfaces = { 26 30 wg0 = { 27 31 address = [ "10.0.69.7/24" ];
+13
secrets/anthropicToken.age
··· 1 + age-encryption.org/v1 2 + -> ssh-ed25519 thu/uw QLaolmSxc9Ttj1oeUpXOXXFWl8tujPNHPWndONc5tj4 3 + XkyS+bH2PkbDzgnGot5os/PNW8vc2To3XkURqizAbnE 4 + -> ssh-ed25519 AiezdQ D+YMTZ3+ugspxhXe+wUMD4NnZcFdPBbB6vZNzDJ0tiU 5 + V562Gi4OeTgX2Qs5gnzb75e+YzgWarimh5Jy9aNIXFU 6 + -> ssh-ed25519 H6uv4Q Z8pKwmLJcZCa/+5BrfOU5Av1KxgykAtI51mvr7AonWI 7 + 35sCIDjumH3hWjk72ezEZbzw7KPMEe7UKko52q3InN0 8 + -> ssh-ed25519 K2vF/Q +i4DZxik5VBvvF0eH3rN1fuPbpbaWMOvQqN32lZEcD8 9 + msEHIWIJwHk54jTifMRZcQXSBMLv8ROIMpOglWEyQaA 10 + --- jkVE6fH3DN5pOY7lAp7hj2EnNvd7VZT8nObC9RrVo7E 11 + ���/� 12 + ��}��ں�)�����!�� w�z�:L��t���i��m8>N�L 읳,� M2S�R�0w���^�_{���2)�k@4�k-F���X��R�/��=^�m*�O��ư��zI�ON��6r��Q� 13 + W�a��yo�-
secrets/github-token.age

This is a binary file and will not be displayed.

+2
secrets/secrets.nix
··· 37 37 "wallabag-secret.age".publicKeys = [ mossnet ]; 38 38 39 39 "work-wg.age".publicKeys = [ work user system ]; 40 + "github-token.age".publicKeys = [ work user system mossnet ]; 41 + "anthropicToken.age".publicKeys = [ work user system mossnet ]; 40 42 }