feat: add mcp-nixos and add global context
This commit is contained in:
+39
-1
@@ -1,6 +1,34 @@
|
|||||||
{ inputs, ... }:
|
{ inputs, ... }:
|
||||||
let
|
let
|
||||||
sharedContext = "";
|
sharedContext = ''
|
||||||
|
# Global Agent Context
|
||||||
|
|
||||||
|
Be a concise technical thought partner. Check the premise before executing, optimize for the user's actual outcome, and make important assumptions or tradeoffs visible.
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
- Respect mode words literally: "read-only", "debug", "investigate", or "do not change code" means no edits; "plan" means produce a decision-complete plan; "implement" means make the smallest useful patch and verify it.
|
||||||
|
- Ask only when the answer cannot be discovered locally and a wrong assumption would materially change the result. Otherwise state the assumption and continue.
|
||||||
|
- Keep responses dense. Lead with the answer, cause, patch result, or recommendation. Avoid long preambles and generic reassurance.
|
||||||
|
|
||||||
|
## Code Changes
|
||||||
|
|
||||||
|
- Preserve user work. Never revert or overwrite unrelated changes; read dirty files before editing them.
|
||||||
|
- Prefer simple, ergonomic code that matches the existing project style. Avoid future-proofing and new abstractions unless the current problem clearly pays for them.
|
||||||
|
- Before editing, understand the local architecture, dependency manager, formatter, and test commands. After editing, run the narrowest meaningful verification and report what ran.
|
||||||
|
- Do not install dependencies globally or mutate system configuration unless explicitly asked.
|
||||||
|
|
||||||
|
## Machine Environment
|
||||||
|
|
||||||
|
- This machine is Nix/NixOS-based. Standard Linux assumptions may be wrong: software is usually provided by flakes, dev shells, `devenv`, `direnv`, or the user's NixOS/Home Manager config rather than `apt`, `dnf`, or global installs.
|
||||||
|
- If a repo has `flake.nix`, `devenv.nix`, `shell.nix`, or `.envrc`, prefer entering or invoking its dev environment (`nix develop`, `devenv shell`, or `direnv exec . <cmd>`). `direnv` may not be loaded automatically inside agent shells.
|
||||||
|
- For NixOS/Home Manager/nixpkgs/packages/options, use the NixOS MCP when available instead of relying on memory.
|
||||||
|
|
||||||
|
## User Preferences
|
||||||
|
|
||||||
|
- The user values precision, minimalism, and conceptual clarity. Challenge weak premises, but explain why.
|
||||||
|
- For larger or ambiguous work, interview or plan before broad implementation. For small concrete requests, proceed with the obvious scoped change.
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
flake.modules.nixos.ai = {
|
flake.modules.nixos.ai = {
|
||||||
@@ -24,9 +52,18 @@ in
|
|||||||
{
|
{
|
||||||
home.sessionVariables.GEMINI_CONFIG_DIR = "${config.xdg.configHome}/gemini";
|
home.sessionVariables.GEMINI_CONFIG_DIR = "${config.xdg.configHome}/gemini";
|
||||||
|
|
||||||
|
programs.mcp = {
|
||||||
|
enable = true;
|
||||||
|
servers.nixos = {
|
||||||
|
command = "${pkgs.uv}/bin/uvx";
|
||||||
|
args = [ "mcp-nixos" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.gemini-cli = {
|
programs.gemini-cli = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.llm-agents.gemini-cli;
|
package = pkgs.llm-agents.gemini-cli;
|
||||||
|
enableMcpIntegration = true;
|
||||||
context.AGENTS = sharedContext;
|
context.AGENTS = sharedContext;
|
||||||
settings = {
|
settings = {
|
||||||
context = {
|
context = {
|
||||||
@@ -43,6 +80,7 @@ in
|
|||||||
programs.codex = {
|
programs.codex = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.llm-agents.codex;
|
package = pkgs.llm-agents.codex;
|
||||||
|
enableMcpIntegration = true;
|
||||||
context = sharedContext;
|
context = sharedContext;
|
||||||
settings = {
|
settings = {
|
||||||
model = "gpt-5.5";
|
model = "gpt-5.5";
|
||||||
|
|||||||
Reference in New Issue
Block a user