{ nixConfig = { extra-substituters = [ "https://nix-community.cachix.org" ]; extra-trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; description = "An emacs elisp project"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; jailed-agents.url = "git+https://gitea@gitea.bueso.eu/luis/jailed-agents"; mcp-servers.url = "git+https://gitea@gitea.bueso.eu/luis/mcp-servers"; }; outputs = { nixpkgs, flake-utils, jailed-agents, mcp-servers, ... }: flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; baseShell = import ./shell.nix { inherit pkgs; }; mcpServers = with pkgs; [ mcp-nixos ] ++ (with mcp-servers.packages.${system}; [ duckduckgo-mcp-server ]); emacs = pkgs.emacs.pkgs.withPackages (epkgs: [ epkgs.org-roam ]); in { devShells.default = pkgs.mkShell { inputsFrom = [ baseShell ]; packages = mcpServers ++ [ (jailed-agents.lib.${system}.makeJailed system { agentTool = "opencode"; extraPkgs = mcpServers ++ [emacs]; }) ]; }; } ); }