Added OpenCode

This commit is contained in:
2026-06-17 20:22:32 +02:00
parent 9640b433a4
commit 48260c392b
3 changed files with 63 additions and 22 deletions
+1
View File
@@ -18,6 +18,7 @@
./neovim
./python.nix
./fonts.nix
./opencode.nix
inputs.sops-nix.homeManagerModules.sops
]
++ lib.optionals (!isDarwin && !isServer) [
+30 -22
View File
@@ -5,25 +5,41 @@
plugins = {
markdown-preview.enable = true;
render-markdown.enable = true;
avante = {
enable = true;
autoLoad = true;
settings = {
provider = "groq";
provider = "ollama";
providers.groq = {
__inherited_from = "openai";
api_key_name = "cmd:cat /home/phil/.config/sops-nix/secrets/GROQ_API_KEY";
endpoint = "https://api.groq.com/openai/v1/";
model = "qwen/qwen3-32b"; # "llama-3.3-70b-versatile";
system_promt = "You are a helpful coding assistant. Always respond in plain markdown format without using tool calls or JSON structures.";
disable_tools = true;
extra_request_body = {
temperature = 1;
max_tokens = 2000;
response_format = {
type = "text";
providers = {
groq = {
__inherited_from = "openai";
api_key_name = "cmd:cat /home/phil/.config/sops-nix/secrets/GROQ_API_KEY";
endpoint = "https://api.groq.com/openai/v1/";
model = "qwen/qwen3-32b";
system_promt = "You are a helpful coding assistant. Always respond in plain markdown format without using tool calls or JSON structures.";
disable_tools = true;
extra_request_body = {
temperature = 1;
max_tokens = 2000;
response_format = {
type = "text";
};
};
};
ollama = {
endpoint = "http://100.109.179.25:11434"; # tailscale IP, no /v1 suffix
model = "qwen2.5:3b"; # swap for "llama3.2:3b" or "deepseek-r1:1.5b"
timeout = 60000; # local + small model can be slow on first load
disable_tools = true; # these small models aren't reliable at tool calling
is_env_set.__raw = ''require("avante.providers.ollama").check_endpoint_alive'';
extra_request_body = {
options = {
temperature = 0.7;
num_ctx = 8192;
keep_alive = "5m";
};
};
};
};
@@ -35,7 +51,6 @@
code = true;
link = true;
};
behaviour = {
enable_cursor_planning_mode = false;
auto_suggestions = false;
@@ -46,7 +61,6 @@
use_selection_as_context = true;
max_context_tokens = 2000;
};
mappings = {
ask = "<leader>aa";
edit = "<leader>ae";
@@ -79,11 +93,9 @@
reverse_switch_windows = "<S-Tab>";
};
};
hints = {
enabled = true;
};
windows = {
position = "right";
wrap = true;
@@ -93,22 +105,18 @@
rounded = true;
};
};
highlights = {
diff = {
current = "DiffText";
incoming = "DiffAdd";
};
};
diff = {
autojump = true;
list_opener = "copen";
};
};
};
#extraPackages = with pkgs; [ curl ];
};
};
}
+32
View File
@@ -0,0 +1,32 @@
_: {
programs.opencode = {
enable = true;
settings = {
enabled_providers = [ "ollama" ];
model = "ollama/llama3.2:3b";
provider = {
ollama = {
npm = "@ai-sdk/openai-compatible";
name = "Ollama (tailscale)";
options = {
baseURL = "http://100.109.179.25:11434/v1";
};
models = {
"llama3.2:3b" = {
name = "Llama 3.2 3B";
};
"qwen2.5:3b" = {
name = "Qwen 2.5 3B";
};
"deepseek-r1:1.5b" = {
name = "DeepSeek-R1 1.5B";
};
};
};
};
};
};
}