82 lines
1.8 KiB
Nix
82 lines
1.8 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
inherit (lib) getExe;
|
|
in
|
|
{
|
|
programs.opencode = {
|
|
enable = true;
|
|
package = pkgs.unstable.opencode;
|
|
enableMcpIntegration = config.programs.mcp.enable;
|
|
settings = {
|
|
autoshare = false;
|
|
autoupdate = false;
|
|
model = "requesty/deepseek/deepseek-v4-flash";
|
|
provider.requesty = {
|
|
name = "Requesty";
|
|
npm = "@ai-sdk/openai-compatible";
|
|
options = {
|
|
baseURL = "https://router.requesty.ai/v1";
|
|
apiKey = "{env:REQUESTY_API_KEY}";
|
|
};
|
|
models = {
|
|
"deepseek/deepseek-v4-flash" = {
|
|
name = "DeepSeek V4 Flash";
|
|
tool_call = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.mcp = {
|
|
enable = true;
|
|
servers = {
|
|
fetcher = {
|
|
command = getExe pkgs.synix.fetcher-mcp;
|
|
};
|
|
nixos = {
|
|
command = getExe pkgs.nix;
|
|
args = [
|
|
"run"
|
|
"github:utensils/mcp-nixos"
|
|
"--"
|
|
];
|
|
};
|
|
forgejo = {
|
|
command = getExe pkgs.unstable.forgejo-mcp;
|
|
args = [
|
|
"--transport"
|
|
"stdio"
|
|
"--url"
|
|
"https://git.sid.ovh"
|
|
];
|
|
env = {
|
|
FORGEJO_USER_AGENT = "forgejo-mcp/1.0.0";
|
|
};
|
|
envFile = config.sops.templates.forgejo-mcp-env-file.path;
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.zsh.initContent = ''
|
|
source ${config.sops.templates.requesty-env.path}
|
|
'';
|
|
|
|
sops = {
|
|
secrets.requesty-api-key = { };
|
|
templates.requesty-env.content = ''
|
|
export REQUESTY_API_KEY=${config.sops.placeholder.requesty-api-key}
|
|
'';
|
|
|
|
secrets.forgejo-mcp-access-token = { };
|
|
templates.forgejo-mcp-env-file.content = ''
|
|
FORGEJO_ACCESS_TOKEN=${config.sops.placeholder.forgejo-mcp-access-token}
|
|
'';
|
|
};
|
|
}
|