Compare commits

24 Commits

Author SHA1 Message Date
m3ta-chiron 57c467ef11 chore: fix opus 4.8 thinking 2026-06-15 13:01:07 +02:00
m3ta-chiron fbcf8f65e6 chore: fix opus 4.8 thinking 2026-06-15 12:59:17 +02:00
m3ta-chiron ef78590a6a chore: opus 4.8 2026-06-15 12:46:09 +02:00
m3ta-chiron 39cc27fd72 chore: hyprland monitor config import from dms 2026-06-15 11:00:32 +02:00
m3ta-chiron fe88684d9d chore: move openwork into agent context 2026-06-15 07:39:27 +02:00
m3ta-chiron 4b4221da30 fix: resolve flake lock conflict markers 2026-06-15 07:22:07 +02:00
m3ta-chiron 9be26d79cc feat: openwork 2026-06-15 07:13:29 +02:00
m3ta-chiron 2821f4b6f4 feat: openwork 2026-06-15 07:13:04 +02:00
m3tam3re d1494476b8 flake update 2026-06-13 13:05:16 +02:00
m3tam3re eea29e9877 skills update 2026-06-13 09:41:14 +02:00
m3tam3re 2ab870db8c feat: re-export Hermes skills renderer 2026-06-13 09:25:40 +02:00
m3tam3re 66127c05ea fix(hyprland): set vibe typer keyboard layout to de 2026-06-13 08:17:16 +02:00
m3tam3re 4a9d24fe08 fix: nix eval warnings 2026-06-11 17:33:32 +02:00
m3tam3re 1265dea16a chore: vibetyper keyboard locale 2026-06-11 07:20:07 +02:00
m3tam3re 222c1becf4 chore: vibetyper keyboard locale 2026-06-11 07:14:35 +02:00
m3tam3re 365b6016f1 chore: vibetyper keyboard locale 2026-06-11 07:14:21 +02:00
m3tam3re 9566724015 chore: updates 2026-06-11 07:00:33 +02:00
m3ta-chiron cd80ded6c0 fix(nushell): guard optional agenix secrets source 2026-06-10 08:18:01 +02:00
m3ta-chiron 4fe9f3e306 +chrome 2026-06-08 06:52:56 +02:00
m3ta-chiron d26a40f4ee +chromium 2026-06-08 06:46:40 +02:00
m3ta-chiron 74566375f9 +playwright mcp 2026-06-08 06:38:43 +02:00
m3tam3re add002e05c fix: make inputs self-contained 2026-06-06 13:13:58 +02:00
m3tam3re 5c92a9f1c6 fix(nushell): source agenix secret env 2026-06-06 10:41:44 +02:00
m3tam3re b67922ca60 feat: add agent secrets and packages 2026-06-06 10:31:38 +02:00
13 changed files with 715 additions and 279 deletions
+303 -105
View File
@@ -5,20 +5,36 @@
"anthropic": { "anthropic": {
"discovery": { "discovery": {
"agents": { "agents": {
"include": ["**/AGENT.md"], "include": [
"paths": ["agents"] "**/AGENT.md"
],
"paths": [
"agents"
]
}, },
"prompts": { "prompts": {
"include": ["**/PROMPT.md"], "include": [
"paths": ["prompts"] "**/PROMPT.md"
],
"paths": [
"prompts"
]
}, },
"skills": { "skills": {
"include": ["**/SKILL.md"], "include": [
"paths": ["skills"] "**/SKILL.md"
],
"paths": [
"skills"
]
}, },
"tools": { "tools": {
"include": ["**/TOOL.md"], "include": [
"paths": ["tools"] "**/TOOL.md"
],
"paths": [
"tools"
]
} }
}, },
"items": { "items": {
@@ -226,20 +242,36 @@
"basecamp": { "basecamp": {
"discovery": { "discovery": {
"agents": { "agents": {
"include": ["**/AGENT.md"], "include": [
"paths": ["agents"] "**/AGENT.md"
],
"paths": [
"agents"
]
}, },
"prompts": { "prompts": {
"include": ["**/PROMPT.md"], "include": [
"paths": ["prompts"] "**/PROMPT.md"
],
"paths": [
"prompts"
]
}, },
"skills": { "skills": {
"include": ["**/SKILL.md"], "include": [
"paths": ["skills"] "**/SKILL.md"
],
"paths": [
"skills"
]
}, },
"tools": { "tools": {
"include": ["**/TOOL.md"], "include": [
"paths": ["tools"] "**/TOOL.md"
],
"paths": [
"tools"
]
} }
}, },
"items": { "items": {
@@ -260,9 +292,9 @@
}, },
"tools": {} "tools": {}
}, },
"narHash": "sha256:7f068227eed664d6fbfb077eddf32901e01430441fbc2c58106aa95e45292d94", "narHash": "sha256:2bbaeab9865fca091abd0714b4d971666e3f0c83c6ee1291eda88f757791ebf6",
"ref": null, "ref": null,
"rev": "b20051d4b66b85aed61e165fedad0837ea1a5a4c", "rev": "64db1cfb966a78e1ae63f485fc4cca4704a29d3a",
"root": ".", "root": ".",
"type": "git", "type": "git",
"url": "https://github.com/basecamp/basecamp-cli", "url": "https://github.com/basecamp/basecamp-cli",
@@ -271,20 +303,36 @@
"kestra": { "kestra": {
"discovery": { "discovery": {
"agents": { "agents": {
"include": ["**/AGENT.md"], "include": [
"paths": ["agents"] "**/AGENT.md"
],
"paths": [
"agents"
]
}, },
"prompts": { "prompts": {
"include": ["**/PROMPT.md"], "include": [
"paths": ["prompts"] "**/PROMPT.md"
],
"paths": [
"prompts"
]
}, },
"skills": { "skills": {
"include": ["**/SKILL.md"], "include": [
"paths": ["skills"] "**/SKILL.md"
],
"paths": [
"skills"
]
}, },
"tools": { "tools": {
"include": ["**/TOOL.md"], "include": [
"paths": ["tools"] "**/TOOL.md"
],
"paths": [
"tools"
]
} }
}, },
"items": { "items": {
@@ -338,20 +386,36 @@
"m3ta-agents": { "m3ta-agents": {
"discovery": { "discovery": {
"agents": { "agents": {
"include": ["**/AGENT.md"], "include": [
"paths": ["agents"] "**/AGENT.md"
],
"paths": [
"agents"
]
}, },
"prompts": { "prompts": {
"include": ["**/PROMPT.md"], "include": [
"paths": ["prompts"] "**/PROMPT.md"
],
"paths": [
"prompts"
]
}, },
"skills": { "skills": {
"include": ["**/SKILL.md"], "include": [
"paths": ["skills"] "**/SKILL.md"
],
"paths": [
"skills"
]
}, },
"tools": { "tools": {
"include": ["**/TOOL.md"], "include": [
"paths": ["tools"] "**/TOOL.md"
],
"paths": [
"tools"
]
} }
}, },
"items": { "items": {
@@ -626,20 +690,36 @@
"mattpocock": { "mattpocock": {
"discovery": { "discovery": {
"agents": { "agents": {
"include": ["**/AGENT.md"], "include": [
"paths": ["agents"] "**/AGENT.md"
],
"paths": [
"agents"
]
}, },
"prompts": { "prompts": {
"include": ["**/PROMPT.md"], "include": [
"paths": ["prompts"] "**/PROMPT.md"
],
"paths": [
"prompts"
]
}, },
"skills": { "skills": {
"include": ["**/SKILL.md"], "include": [
"paths": ["skills"] "**/SKILL.md"
],
"paths": [
"skills"
]
}, },
"tools": { "tools": {
"include": ["**/TOOL.md"], "include": [
"paths": ["tools"] "**/TOOL.md"
],
"paths": [
"tools"
]
} }
}, },
"items": { "items": {
@@ -648,7 +728,9 @@
"skills": { "skills": {
"caveman": { "caveman": {
"entry": "skills/productivity/caveman/SKILL.md", "entry": "skills/productivity/caveman/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": ">", "description": ">",
"name": "caveman", "name": "caveman",
@@ -659,7 +741,9 @@
}, },
"design-an-interface": { "design-an-interface": {
"entry": "skills/deprecated/design-an-interface/SKILL.md", "entry": "skills/deprecated/design-an-interface/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions \"design it twice\".", "description": "Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions \"design it twice\".",
"name": "design-an-interface", "name": "design-an-interface",
@@ -670,7 +754,9 @@
}, },
"diagnose": { "diagnose": {
"entry": "skills/engineering/diagnose/SKILL.md", "entry": "skills/engineering/diagnose/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says \"diagnose this\" / \"debug this\", reports a bug, says something is broken/throwing/failing, or describes a performance regression.", "description": "Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says \"diagnose this\" / \"debug this\", reports a bug, says something is broken/throwing/failing, or describes a performance regression.",
"name": "diagnose", "name": "diagnose",
@@ -681,7 +767,9 @@
}, },
"edit-article": { "edit-article": {
"entry": "skills/personal/edit-article/SKILL.md", "entry": "skills/personal/edit-article/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.", "description": "Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.",
"name": "edit-article", "name": "edit-article",
@@ -692,7 +780,9 @@
}, },
"git-guardrails-claude-code": { "git-guardrails-claude-code": {
"entry": "skills/misc/git-guardrails-claude-code/SKILL.md", "entry": "skills/misc/git-guardrails-claude-code/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.", "description": "Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.",
"name": "git-guardrails-claude-code", "name": "git-guardrails-claude-code",
@@ -703,7 +793,9 @@
}, },
"grill-me": { "grill-me": {
"entry": "skills/productivity/grill-me/SKILL.md", "entry": "skills/productivity/grill-me/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".", "description": "Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".",
"name": "grill-me", "name": "grill-me",
@@ -714,7 +806,9 @@
}, },
"grill-with-docs": { "grill-with-docs": {
"entry": "skills/engineering/grill-with-docs/SKILL.md", "entry": "skills/engineering/grill-with-docs/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.", "description": "Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.",
"name": "grill-with-docs", "name": "grill-with-docs",
@@ -725,7 +819,9 @@
}, },
"handoff": { "handoff": {
"entry": "skills/productivity/handoff/SKILL.md", "entry": "skills/productivity/handoff/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Compact the current conversation into a handoff document for another agent to pick up.", "description": "Compact the current conversation into a handoff document for another agent to pick up.",
"name": "handoff", "name": "handoff",
@@ -736,7 +832,9 @@
}, },
"improve-codebase-architecture": { "improve-codebase-architecture": {
"entry": "skills/engineering/improve-codebase-architecture/SKILL.md", "entry": "skills/engineering/improve-codebase-architecture/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.", "description": "Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.",
"name": "improve-codebase-architecture", "name": "improve-codebase-architecture",
@@ -747,7 +845,9 @@
}, },
"migrate-to-shoehorn": { "migrate-to-shoehorn": {
"entry": "skills/misc/migrate-to-shoehorn/SKILL.md", "entry": "skills/misc/migrate-to-shoehorn/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.", "description": "Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.",
"name": "migrate-to-shoehorn", "name": "migrate-to-shoehorn",
@@ -758,7 +858,9 @@
}, },
"obsidian-vault": { "obsidian-vault": {
"entry": "skills/personal/obsidian-vault/SKILL.md", "entry": "skills/personal/obsidian-vault/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.", "description": "Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.",
"name": "obsidian-vault", "name": "obsidian-vault",
@@ -769,7 +871,9 @@
}, },
"prototype": { "prototype": {
"entry": "skills/engineering/prototype/SKILL.md", "entry": "skills/engineering/prototype/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Build a throwaway prototype to flesh out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says \"prototype this\", \"let me play with it\", \"try a few designs\".", "description": "Build a throwaway prototype to flesh out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says \"prototype this\", \"let me play with it\", \"try a few designs\".",
"name": "prototype", "name": "prototype",
@@ -780,7 +884,9 @@
}, },
"qa": { "qa": {
"entry": "skills/deprecated/qa/SKILL.md", "entry": "skills/deprecated/qa/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Interactive QA session where user reports bugs or issues conversationally, and the agent files GitHub issues. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, file issues conversationally, or mentions \"QA session\".", "description": "Interactive QA session where user reports bugs or issues conversationally, and the agent files GitHub issues. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, file issues conversationally, or mentions \"QA session\".",
"name": "qa", "name": "qa",
@@ -791,7 +897,9 @@
}, },
"request-refactor-plan": { "request-refactor-plan": {
"entry": "skills/deprecated/request-refactor-plan/SKILL.md", "entry": "skills/deprecated/request-refactor-plan/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.", "description": "Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.",
"name": "request-refactor-plan", "name": "request-refactor-plan",
@@ -802,7 +910,9 @@
}, },
"review": { "review": {
"entry": "skills/in-progress/review/SKILL.md", "entry": "skills/in-progress/review/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to \"review since X\".", "description": "Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to \"review since X\".",
"name": "review", "name": "review",
@@ -813,7 +923,9 @@
}, },
"scaffold-exercises": { "scaffold-exercises": {
"entry": "skills/misc/scaffold-exercises/SKILL.md", "entry": "skills/misc/scaffold-exercises/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.", "description": "Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.",
"name": "scaffold-exercises", "name": "scaffold-exercises",
@@ -824,7 +936,9 @@
}, },
"setup-matt-pocock-skills": { "setup-matt-pocock-skills": {
"entry": "skills/engineering/setup-matt-pocock-skills/SKILL.md", "entry": "skills/engineering/setup-matt-pocock-skills/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.", "description": "Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.",
"name": "setup-matt-pocock-skills", "name": "setup-matt-pocock-skills",
@@ -835,7 +949,9 @@
}, },
"setup-pre-commit": { "setup-pre-commit": {
"entry": "skills/misc/setup-pre-commit/SKILL.md", "entry": "skills/misc/setup-pre-commit/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.", "description": "Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.",
"name": "setup-pre-commit", "name": "setup-pre-commit",
@@ -846,7 +962,9 @@
}, },
"tdd": { "tdd": {
"entry": "skills/engineering/tdd/SKILL.md", "entry": "skills/engineering/tdd/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions \"red-green-refactor\", wants integration tests, or asks for test-first development.", "description": "Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions \"red-green-refactor\", wants integration tests, or asks for test-first development.",
"name": "tdd", "name": "tdd",
@@ -856,19 +974,23 @@
"path": "skills/engineering/tdd" "path": "skills/engineering/tdd"
}, },
"teach": { "teach": {
"entry": "skills/in-progress/teach/SKILL.md", "entry": "skills/productivity/teach/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Teach the user a new skill or concept, within this workspace.", "description": "Teach the user a new skill or concept, within this workspace.",
"name": "teach", "name": "teach",
"requires": [], "requires": [],
"tags": [] "tags": []
}, },
"path": "skills/in-progress/teach" "path": "skills/productivity/teach"
}, },
"to-issues": { "to-issues": {
"entry": "skills/engineering/to-issues/SKILL.md", "entry": "skills/engineering/to-issues/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.", "description": "Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.",
"name": "to-issues", "name": "to-issues",
@@ -879,7 +1001,9 @@
}, },
"to-prd": { "to-prd": {
"entry": "skills/engineering/to-prd/SKILL.md", "entry": "skills/engineering/to-prd/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.", "description": "Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.",
"name": "to-prd", "name": "to-prd",
@@ -890,7 +1014,9 @@
}, },
"triage": { "triage": {
"entry": "skills/engineering/triage/SKILL.md", "entry": "skills/engineering/triage/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Triage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.", "description": "Triage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.",
"name": "triage", "name": "triage",
@@ -901,7 +1027,9 @@
}, },
"ubiquitous-language": { "ubiquitous-language": {
"entry": "skills/deprecated/ubiquitous-language/SKILL.md", "entry": "skills/deprecated/ubiquitous-language/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions \"domain model\" or \"DDD\".", "description": "Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions \"domain model\" or \"DDD\".",
"name": "ubiquitous-language", "name": "ubiquitous-language",
@@ -912,7 +1040,9 @@
}, },
"write-a-skill": { "write-a-skill": {
"entry": "skills/productivity/write-a-skill/SKILL.md", "entry": "skills/productivity/write-a-skill/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.", "description": "Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.",
"name": "write-a-skill", "name": "write-a-skill",
@@ -923,7 +1053,9 @@
}, },
"writing-beats": { "writing-beats": {
"entry": "skills/in-progress/writing-beats/SKILL.md", "entry": "skills/in-progress/writing-beats/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.", "description": "Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.",
"name": "writing-beats", "name": "writing-beats",
@@ -934,7 +1066,9 @@
}, },
"writing-fragments": { "writing-fragments": {
"entry": "skills/in-progress/writing-fragments/SKILL.md", "entry": "skills/in-progress/writing-fragments/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Grilling session that mines the user for fragments — heterogeneous nuggets of writing (claims, vignettes, sharp sentences, half-thoughts) — and appends them to a single document as raw material for a future article. Use when the user wants to develop ideas before imposing structure, or mentions \"fragments\", \"ideate\", or \"raw material\" for writing.", "description": "Grilling session that mines the user for fragments — heterogeneous nuggets of writing (claims, vignettes, sharp sentences, half-thoughts) — and appends them to a single document as raw material for a future article. Use when the user wants to develop ideas before imposing structure, or mentions \"fragments\", \"ideate\", or \"raw material\" for writing.",
"name": "writing-fragments", "name": "writing-fragments",
@@ -945,7 +1079,9 @@
}, },
"writing-shape": { "writing-shape": {
"entry": "skills/in-progress/writing-shape/SKILL.md", "entry": "skills/in-progress/writing-shape/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.", "description": "Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.",
"name": "writing-shape", "name": "writing-shape",
@@ -956,7 +1092,9 @@
}, },
"zoom-out": { "zoom-out": {
"entry": "skills/engineering/zoom-out/SKILL.md", "entry": "skills/engineering/zoom-out/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.", "description": "Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.",
"name": "zoom-out", "name": "zoom-out",
@@ -968,9 +1106,9 @@
}, },
"tools": {} "tools": {}
}, },
"narHash": "sha256:e61c575015dca998709776014f52317e29b49aca42659b635dbc69fb60a7f9e1", "narHash": "sha256:f0f009c64fe1572fbfade479e4829f2fd4499f703e7110c1387a5e05bfe00b9e",
"ref": null, "ref": null,
"rev": "e3b90b5238f38cdea5996e16861dcae28ef52eda", "rev": "694fa30311e02c2639942308513555e61ee84a6f",
"root": ".", "root": ".",
"type": "git", "type": "git",
"url": "https://github.com/mattpocock/skills", "url": "https://github.com/mattpocock/skills",
@@ -979,20 +1117,36 @@
"superpowers": { "superpowers": {
"discovery": { "discovery": {
"agents": { "agents": {
"include": ["**/AGENT.md"], "include": [
"paths": ["agents"] "**/AGENT.md"
],
"paths": [
"agents"
]
}, },
"prompts": { "prompts": {
"include": ["**/PROMPT.md"], "include": [
"paths": ["prompts"] "**/PROMPT.md"
],
"paths": [
"prompts"
]
}, },
"skills": { "skills": {
"include": ["**/SKILL.md"], "include": [
"paths": ["skills"] "**/SKILL.md"
],
"paths": [
"skills"
]
}, },
"tools": { "tools": {
"include": ["**/TOOL.md"], "include": [
"paths": ["tools"] "**/TOOL.md"
],
"paths": [
"tools"
]
} }
}, },
"items": { "items": {
@@ -1001,7 +1155,9 @@
"skills": { "skills": {
"brainstorming": { "brainstorming": {
"entry": "skills/brainstorming/SKILL.md", "entry": "skills/brainstorming/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.", "description": "You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
"name": "brainstorming", "name": "brainstorming",
@@ -1012,7 +1168,9 @@
}, },
"dispatching-parallel-agents": { "dispatching-parallel-agents": {
"entry": "skills/dispatching-parallel-agents/SKILL.md", "entry": "skills/dispatching-parallel-agents/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies", "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies",
"name": "dispatching-parallel-agents", "name": "dispatching-parallel-agents",
@@ -1023,7 +1181,9 @@
}, },
"executing-plans": { "executing-plans": {
"entry": "skills/executing-plans/SKILL.md", "entry": "skills/executing-plans/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when you have a written implementation plan to execute in a separate session with review checkpoints", "description": "Use when you have a written implementation plan to execute in a separate session with review checkpoints",
"name": "executing-plans", "name": "executing-plans",
@@ -1034,7 +1194,9 @@
}, },
"finishing-a-development-branch": { "finishing-a-development-branch": {
"entry": "skills/finishing-a-development-branch/SKILL.md", "entry": "skills/finishing-a-development-branch/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup", "description": "Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup",
"name": "finishing-a-development-branch", "name": "finishing-a-development-branch",
@@ -1045,7 +1207,9 @@
}, },
"receiving-code-review": { "receiving-code-review": {
"entry": "skills/receiving-code-review/SKILL.md", "entry": "skills/receiving-code-review/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation", "description": "Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation",
"name": "receiving-code-review", "name": "receiving-code-review",
@@ -1056,7 +1220,9 @@
}, },
"requesting-code-review": { "requesting-code-review": {
"entry": "skills/requesting-code-review/SKILL.md", "entry": "skills/requesting-code-review/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when completing tasks, implementing major features, or before merging to verify work meets requirements", "description": "Use when completing tasks, implementing major features, or before merging to verify work meets requirements",
"name": "requesting-code-review", "name": "requesting-code-review",
@@ -1067,7 +1233,9 @@
}, },
"subagent-driven-development": { "subagent-driven-development": {
"entry": "skills/subagent-driven-development/SKILL.md", "entry": "skills/subagent-driven-development/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when executing implementation plans with independent tasks in the current session", "description": "Use when executing implementation plans with independent tasks in the current session",
"name": "subagent-driven-development", "name": "subagent-driven-development",
@@ -1078,7 +1246,9 @@
}, },
"systematic-debugging": { "systematic-debugging": {
"entry": "skills/systematic-debugging/SKILL.md", "entry": "skills/systematic-debugging/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes", "description": "Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes",
"name": "systematic-debugging", "name": "systematic-debugging",
@@ -1089,7 +1259,9 @@
}, },
"test-driven-development": { "test-driven-development": {
"entry": "skills/test-driven-development/SKILL.md", "entry": "skills/test-driven-development/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when implementing any feature or bugfix, before writing implementation code", "description": "Use when implementing any feature or bugfix, before writing implementation code",
"name": "test-driven-development", "name": "test-driven-development",
@@ -1100,7 +1272,9 @@
}, },
"using-git-worktrees": { "using-git-worktrees": {
"entry": "skills/using-git-worktrees/SKILL.md", "entry": "skills/using-git-worktrees/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback", "description": "Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback",
"name": "using-git-worktrees", "name": "using-git-worktrees",
@@ -1111,7 +1285,9 @@
}, },
"using-superpowers": { "using-superpowers": {
"entry": "skills/using-superpowers/SKILL.md", "entry": "skills/using-superpowers/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions", "description": "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions",
"name": "using-superpowers", "name": "using-superpowers",
@@ -1122,7 +1298,9 @@
}, },
"verification-before-completion": { "verification-before-completion": {
"entry": "skills/verification-before-completion/SKILL.md", "entry": "skills/verification-before-completion/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always", "description": "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always",
"name": "verification-before-completion", "name": "verification-before-completion",
@@ -1133,7 +1311,9 @@
}, },
"writing-plans": { "writing-plans": {
"entry": "skills/writing-plans/SKILL.md", "entry": "skills/writing-plans/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when you have a spec or requirements for a multi-step task, before touching code", "description": "Use when you have a spec or requirements for a multi-step task, before touching code",
"name": "writing-plans", "name": "writing-plans",
@@ -1144,7 +1324,9 @@
}, },
"writing-skills": { "writing-skills": {
"entry": "skills/writing-skills/SKILL.md", "entry": "skills/writing-skills/SKILL.md",
"licenseFiles": ["LICENSE"], "licenseFiles": [
"LICENSE"
],
"metadata": { "metadata": {
"description": "Use when creating new skills, editing existing skills, or verifying skills work before deployment", "description": "Use when creating new skills, editing existing skills, or verifying skills work before deployment",
"name": "writing-skills", "name": "writing-skills",
@@ -1167,20 +1349,36 @@
"vercel": { "vercel": {
"discovery": { "discovery": {
"agents": { "agents": {
"include": ["**/AGENT.md"], "include": [
"paths": ["agents"] "**/AGENT.md"
],
"paths": [
"agents"
]
}, },
"prompts": { "prompts": {
"include": ["**/PROMPT.md"], "include": [
"paths": ["prompts"] "**/PROMPT.md"
],
"paths": [
"prompts"
]
}, },
"skills": { "skills": {
"include": ["**/SKILL.md"], "include": [
"paths": ["skills"] "**/SKILL.md"
],
"paths": [
"skills"
]
}, },
"tools": { "tools": {
"include": ["**/TOOL.md"], "include": [
"paths": ["tools"] "**/TOOL.md"
],
"paths": [
"tools"
]
} }
}, },
"items": { "items": {
Generated
+239 -34
View File
@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1780157040, "lastModified": 1781348569,
"narHash": "sha256-j2d3nj3FvOlxQ+Zlse+rMo3qHD3m4Gick5uiwtTaA2o=", "narHash": "sha256-1BJtmKSqtD0CD753ZE37RgxvCJK6Iw3iKLDDaS8trY4=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "f63712a9ba03da6e2f591766d0f055aa65e6d237", "rev": "75a2ed2533b4d6d8e4a34acd37e83d98d81a5fb0",
"revCount": 24, "revCount": 30,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"
}, },
@@ -62,11 +62,11 @@
"agents_2": { "agents_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1778518220, "lastModified": 1780133320,
"narHash": "sha256-6AQs9VZ0/DuD4njPbYHRE4v+SgJc6SBrGwemTWxikVc=", "narHash": "sha256-8AiN9tV9PBb5xblJiPlhumBbKj61qLjzqXXFtkj3vvY=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "b6e1aaa6261c5056d024d8d4785659eaa4e675e6", "rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb",
"revCount": 87, "revCount": 88,
"type": "git", "type": "git",
"url": "https://code.m3ta.dev/m3tam3re/AGENTS" "url": "https://code.m3ta.dev/m3tam3re/AGENTS"
}, },
@@ -164,11 +164,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1780281921, "lastModified": 1781317940,
"narHash": "sha256-ZDsDl7lTOfM+Le2l6gDyEP3o+KHR3TUCkuxd9hQaLro=", "narHash": "sha256-uMVOhV6pVPgm2hn1WGEbIcJRWjnsyWKy8PHCUn0++iI=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "dms-plugin-registry", "repo": "dms-plugin-registry",
"rev": "ee4eeacce5a7041ed39f8cd7fe64b6e0e888e73b", "rev": "4ab59f3da3df33bf106045b856db8de875cc42c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -178,6 +178,27 @@
} }
}, },
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": [
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nur", "nur",
@@ -198,6 +219,31 @@
"type": "github" "type": "github"
} }
}, },
"hermes-agent": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"npm-lockfile-fix": "npm-lockfile-fix",
"pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix_2",
"uv2nix": "uv2nix_2"
},
"locked": {
"lastModified": 1781346807,
"narHash": "sha256-ytT4ojx0qFW4b/oYeW+MkmaA3b/BZ9pqkPmpAg8j1gg=",
"owner": "NousResearch",
"repo": "hermes-agent",
"rev": "2a5dc0ef3df433a36abed9ee544ea067d807c438",
"type": "github"
},
"original": {
"owner": "NousResearch",
"repo": "hermes-agent",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -226,11 +272,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1780099287, "lastModified": 1781305496,
"narHash": "sha256-efIPwVGtIWIjWcznhaop6XN6HxnOL8800hF6CBNvlqQ=", "narHash": "sha256-g8Vv4Qfc7n+lgov97REu3X6BeJtvYY0hlSUZR1GrGQQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "7d8127d308c3fb9664f7e643eec944be74ebb37d", "rev": "c87a39aa979acc4848016d2220c6238390d84779",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -250,11 +296,11 @@
"openspec": "openspec" "openspec": "openspec"
}, },
"locked": { "locked": {
"lastModified": 1779944037, "lastModified": 1781500279,
"narHash": "sha256-jO6zAJjgc9n3SeDJW1EbV6CEqOa9DK+2AhTgWc+ImHQ=", "narHash": "sha256-810qVHwu6jVhu01FWj9dXuruK84Gw2smAlbu6FPBfeY=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "ae1fb97c21b311dc03a46e8d50867048e5568c88", "rev": "050c273c65b36dc03c34a7547d80e88afff5ac48",
"revCount": 323, "revCount": 327,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"
}, },
@@ -315,11 +361,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1779457550, "lastModified": 1781153468,
"narHash": "sha256-yALoy2CrvwvNfwMtGZDRdc+jqVNHulyuM5iVK12lUAI=", "narHash": "sha256-ZBRmjFtJn/XmHBV230OSabKQqxOoOJunJmBtSt1sLs0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a9c18fd234dbe4fd8de4bac53760b785c47e94ff", "rev": "cd265fd6b43f2ec1257c2e400f648895d2ad7ccd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -347,11 +393,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1779560665, "lastModified": 1781074563,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -363,11 +409,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1779560665, "lastModified": 1781074563,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -377,17 +423,38 @@
"type": "github" "type": "github"
} }
}, },
"npm-lockfile-fix": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775903712,
"narHash": "sha256-2GV79U6iVH4gKAPWYrxUReB0S41ty/Y3dBLquU8AlaA=",
"owner": "jeslie0",
"repo": "npm-lockfile-fix",
"rev": "c6093acb0c0548e0f9b8b3d82918823721930fe8",
"type": "github"
},
"original": {
"owner": "jeslie0",
"repo": "npm-lockfile-fix",
"type": "github"
}
},
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1780290189, "lastModified": 1781346642,
"narHash": "sha256-2igu6l2/d4RikYmC/SsykZ1jF1e4+Df+2qWPYjq2xto=", "narHash": "sha256-o92OOSMAB08HQgG7pW2BZVIO53Pkv4oAjLk4Iol3Iko=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "8b6210602dcbd4409ab1c3453ea0c292637c2799", "rev": "6e4e8d731fbb3831296607d5f88de727cf7bf6de",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -404,11 +471,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779302169, "lastModified": 1780479100,
"narHash": "sha256-OOSPtUXC4F2umtsZPkyWlPQxhXBsxF2vqBXLeI/lqIw=", "narHash": "sha256-VZZ/ukjciXqiebwei2JizyOnxx0T3IeoowFWElKec4o=",
"owner": "Fission-AI", "owner": "Fission-AI",
"repo": "OpenSpec", "repo": "OpenSpec",
"rev": "79303b521068c5f525ee61db06b915fc44b098f4", "rev": "1b06fddd59d8e592d5b5794a1970b22867e85b1f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -417,6 +484,94 @@
"type": "github" "type": "github"
} }
}, },
"pyproject-build-systems": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": "pyproject-nix",
"uv2nix": "uv2nix"
},
"locked": {
"lastModified": 1772555609,
"narHash": "sha256-3BA3HnUvJSbHJAlJj6XSy0Jmu7RyP2gyB/0fL7XuEDo=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "c37f66a953535c394244888598947679af231863",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"pyproject-build-systems",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769936401,
"narHash": "sha256-kwCOegKLZJM9v/e/7cqwg1p/YjjTAukKPqmxKnAZRgA=",
"owner": "nix-community",
"repo": "pyproject.nix",
"rev": "b0d513eeeebed6d45b4f2e874f9afba2021f7812",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_2": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772865871,
"narHash": "sha256-/ZTSg97aouL0SlPHaokA4r3iuH9QzHVuWPACD2CUCFY=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "e537db02e72d553cea470976b9733581bcf5b3ed",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_3": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"uv2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1771518446,
"narHash": "sha256-nFJSfD89vWTu92KyuJWDoTQJuoDuddkJV3TlOl1cOic=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "eb204c6b3335698dec6c7fc1da0ebc3c6df05937",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"quickshell": { "quickshell": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -446,6 +601,7 @@
"agents": "agents", "agents": "agents",
"dms": "dms", "dms": "dms",
"dms-plugin-registry": "dms-plugin-registry", "dms-plugin-registry": "dms-plugin-registry",
"hermes-agent": "hermes-agent",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"m3ta-nixpkgs": "m3ta-nixpkgs", "m3ta-nixpkgs": "m3ta-nixpkgs",
"nix-colors": "nix-colors", "nix-colors": "nix-colors",
@@ -467,6 +623,55 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"uv2nix": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"pyproject-build-systems",
"nixpkgs"
],
"pyproject-nix": [
"hermes-agent",
"pyproject-build-systems",
"pyproject-nix"
]
},
"locked": {
"lastModified": 1770770348,
"narHash": "sha256-A2GzkmzdYvdgmMEu5yxW+xhossP+txrYb7RuzRaqhlg=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "5d1b2cb4fe3158043fbafbbe2e46238abbc954b0",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
},
"uv2nix_2": {
"inputs": {
"nixpkgs": [
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": "pyproject-nix_3"
},
"locked": {
"lastModified": 1773039484,
"narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "b68be7cfeacbed9a3fa38a2b5adc0cfb81d9bb1f",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",
+6 -7
View File
@@ -27,6 +27,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hermes-agent = {
url = "github:NousResearch/hermes-agent";
inputs.nixpkgs.follows = "nixpkgs";
};
dms = { dms = {
url = "github:AvengeMedia/DankMaterialShell/stable"; url = "github:AvengeMedia/DankMaterialShell/stable";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -42,13 +47,7 @@
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
}; };
outputs = { outputs = {self, ...} @ inputs: {
self,
nixpkgs,
...
} @ inputs: let
lib = nixpkgs.lib;
in {
# Home-Manager modules — import in nixos-config via: # Home-Manager modules — import in nixos-config via:
# imports = [ inputs.m3ta-home.homeManagerModules.default ]; # imports = [ inputs.m3ta-home.homeManagerModules.default ];
homeManagerModules = import ./modules { homeManagerModules = import ./modules {
+13 -2
View File
@@ -1,5 +1,16 @@
# lib/default.nix — Entry point for m3ta-home library functions. # lib/default.nix — Entry point for m3ta-home library functions.
# #
# Called by flake.nix: import ./lib { inherit inputs; selfPath = self.outPath; } # Called by flake.nix: import ./lib { inherit inputs; selfPath = self.outPath; }
# Re-exports mkHome and future library functions. # Re-exports mkHome and focused helpers for consumers that should not depend on
{inputs, selfPath}: import ./mkHome.nix {inherit inputs selfPath;} # m3ta-home's implementation inputs directly.
{
inputs,
selfPath,
}: let
mkHomeLib = import ./mkHome.nix {inherit inputs selfPath;};
in
mkHomeLib
// {
mkHermesSkillsDir = {system, ...} @ args:
inputs.agent-lib.lib.${system}.mkHermesSkillsDir (builtins.removeAttrs args ["system"]);
}
+4
View File
@@ -87,6 +87,8 @@ in {
inputs.agent-lib.homeManagerModules.default inputs.agent-lib.homeManagerModules.default
inputs.dms.homeModules.default inputs.dms.homeModules.default
inputs.dms-plugin-registry.homeModules.default inputs.dms-plugin-registry.homeModules.default
inputs.nix-colors.homeManagerModules.default
inputs.m3ta-nixpkgs.homeManagerModules.default
# Paths module — must be first, provides m3taHome.paths.srcRoot # Paths module — must be first, provides m3taHome.paths.srcRoot
../modules/paths.nix ../modules/paths.nix
@@ -97,6 +99,8 @@ in {
++ contextImport ++ contextImport
++ setImports; ++ setImports;
_module.args.m3taHomeInputs = inputs;
# Set the flake source root for asset path resolution # Set the flake source root for asset path resolution
"m3ta-home".paths.srcRoot = selfPath; "m3ta-home".paths.srcRoot = selfPath;
+5 -3
View File
@@ -8,15 +8,15 @@
{ {
inputs, inputs,
selfPath, selfPath,
}: let }: {
lib = inputs.nixpkgs.lib;
in {
default = { default = {
imports = [ imports = [
# External modules # External modules
inputs.agent-lib.homeManagerModules.default inputs.agent-lib.homeManagerModules.default
inputs.dms.homeModules.default inputs.dms.homeModules.default
inputs.dms-plugin-registry.homeModules.default inputs.dms-plugin-registry.homeModules.default
inputs.nix-colors.homeManagerModules.default
inputs.m3ta-nixpkgs.homeManagerModules.default
# Paths — must be first, provides "m3ta-home".paths.srcRoot # Paths — must be first, provides "m3ta-home".paths.srcRoot
./paths.nix ./paths.nix
@@ -34,6 +34,8 @@ in {
./../users/m3tam3re/identities/work.nix ./../users/m3tam3re/identities/work.nix
]; ];
_module.args.m3taHomeInputs = inputs;
# Set the source root for asset path resolution # Set the source root for asset path resolution
"m3ta-home".paths.srcRoot = selfPath; "m3ta-home".paths.srcRoot = selfPath;
}; };
+5 -8
View File
@@ -1,7 +1,6 @@
# profiles/base/default.nix — Always loaded on every host. # profiles/base/default.nix — Always loaded on every host.
# #
# Provides: # Provides:
# - nix-colors and m3ta-nixpkgs HM module imports
# - Shell (nushell, fish, starship) with enable options # - Shell (nushell, fish, starship) with enable options
# - CLI tools (bat, carapace, direnv, eza, fzf, lf, nitch, television, zellij, zoxide) # - CLI tools (bat, carapace, direnv, eza, fzf, lf, nitch, television, zellij, zoxide)
# - Secrets management (pass-wayland) # - Secrets management (pass-wayland)
@@ -9,21 +8,19 @@
# - Base packages # - Base packages
# #
# NOTE: Overlays are NOT set here. The consuming flake (nixos-config) handles # NOTE: Overlays are NOT set here. The consuming flake (nixos-config) handles
# overlays at the NixOS level via nixpkgs.overlays. This module only imports # overlays at the NixOS level via nixpkgs.overlays. External HM modules are
# HM modules and sets user-level preferences. # imported by mkHome/modules/default.nix. This module only imports base profile
# submodules and sets user-level preferences.
# #
# When used standalone (not through NixOS), overlays should be set by the # When used standalone (not through NixOS), overlays should be set by the
# standalone HM configuration or by the consuming flake. # standalone HM configuration or by the consuming flake.
{ {
inputs,
lib, lib,
m3taHomeInputs,
pkgs, pkgs,
... ...
}: { }: {
imports = [ imports = [
inputs.nix-colors.homeManagerModules.default
inputs.m3ta-nixpkgs.homeManagerModules.default
./shell ./shell
./cli-tools ./cli-tools
./secrets ./secrets
@@ -44,7 +41,7 @@
}; };
# ── Color scheme ── # ── Color scheme ──
colorScheme = inputs.nix-colors.colorSchemes.dracula; colorScheme = m3taHomeInputs.nix-colors.colorSchemes.dracula;
# ── Base packages ── # ── Base packages ──
home.packages = with pkgs; [ home.packages = with pkgs; [
+10
View File
@@ -41,6 +41,16 @@ in {
| transpose -r -d | transpose -r -d
| load-env | load-env
} }
# Load m3tam3re secrets from agenix. The secret file is Nushell code
# containing a `load-env { ... }` block, not KEY=VALUE lines.
# `source` resolves literal paths at parse time, so use `null` when absent.
const m3tam3re_secrets_file = if ("/run/agenix/m3tam3re-secrets" | path exists) {
"/run/agenix/m3tam3re-secrets"
} else {
null
}
source $m3tam3re_secrets_file
''; '';
configFile.text = '' configFile.text = ''
+50 -47
View File
@@ -1,8 +1,7 @@
# Desktop environment aggregator — only loaded when context=desktop. # Desktop environment aggregator — only loaded when context=desktop.
# Includes window manager, applications, theming, and desktop session config. # Includes window manager, applications, theming, and desktop session config.
{ {
config, m3taHomeInputs,
inputs,
pkgs, pkgs,
... ...
}: { }: {
@@ -39,22 +38,56 @@
}; };
}; };
home.sessionVariables = { home = {
WEBKIT_DISABLE_COMPOSITING_MODE = "1"; sessionVariables = {
NIXOS_OZONE_WL = "1"; WEBKIT_DISABLE_COMPOSITING_MODE = "1";
TERMINAL = "ghostty"; NIXOS_OZONE_WL = "1";
QT_QPA_PLATFORM = "wayland"; TERMINAL = "ghostty";
XDG_CURRENT_DESKTOP = "Hyprland"; QT_QPA_PLATFORM = "wayland";
XDG_SESSION_TYPE = "wayland"; XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_DESKTOP = "Hyprland"; XDG_SESSION_TYPE = "wayland";
}; XDG_SESSION_DESKTOP = "Hyprland";
};
home.sessionPath = [ sessionPath = [
"\${XDG_BIN_HOME}" "\${XDG_BIN_HOME}"
"\${HOME}/.cargo/bin" "\${HOME}/.cargo/bin"
"$HOME/.npm-global/bin" "$HOME/.npm-global/bin"
"$HOME/.cache/.bun/bin" "$HOME/.cache/.bun/bin"
]; ];
pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 20;
};
packages = with pkgs; [
appimage-run
bemoji
google-chrome
dconf
(element-desktop.override {
commandLineArgs = "--password-store=gnome-libsecret";
})
m3taHomeInputs.hermes-agent.packages.${pkgs.stdenv.hostPlatform.system}.desktop
launch-webapp
file-roller
gsettings-desktop-schemas
seahorse
sushi
ksnip
nwg-look
qt6Packages.qt6ct
rose-pine-hyprcursor
remmina
slack
vivaldi
vivaldi-ffmpeg-codecs
vibetyper
];
};
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
@@ -91,34 +124,4 @@
# ]; # ];
}; };
}; };
home.pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 20;
};
home.packages = with pkgs; [
appimage-run
bemoji
dconf
(element-desktop.override {
commandLineArgs = "--password-store=gnome-libsecret";
})
launch-webapp
file-roller
gsettings-desktop-schemas
seahorse
sushi
ksnip
nwg-look
qt6Packages.qt6ct
rose-pine-hyprcursor
remmina
slack
vivaldi
vivaldi-ffmpeg-codecs
vibetyper
];
} }
+5 -1
View File
@@ -19,7 +19,7 @@ in {
source = [ source = [
"~/.config/hypr/dms/colors.conf" "~/.config/hypr/dms/colors.conf"
"~/.config/hypr/dms/layout.conf" "~/.config/hypr/dms/layout.conf"
"~/.config/hypr/monitors.conf" "~/.config/hypr/dms/outputs.conf"
]; ];
exec-once = [ exec-once = [
"vibetyper" "vibetyper"
@@ -101,6 +101,10 @@ in {
name = "zsa-technology-labs-moonlander-mark-i"; name = "zsa-technology-labs-moonlander-mark-i";
kb_layout = "us"; kb_layout = "us";
} }
{
name = "vibe-typer-virtual-keyboard";
kb_layout = "de";
}
{ {
name = "keychron-keychron-k7"; name = "keychron-keychron-k7";
kb_layout = "us"; kb_layout = "us";
+8 -4
View File
@@ -1,10 +1,8 @@
# AI agent system — OpenCode, Pi, and MCP server configuration. # AI agent system — OpenCode, Pi, and MCP server configuration.
# Relies on coding.agents options provided by home/common/default.nix # Relies on coding.agents options provided by home/common/default.nix
# (inputs.m3ta-nixpkgs.homeManagerModules.default). # (m3taHomeInputs.m3ta-nixpkgs.homeManagerModules.default).
{ {
config, m3taHomeInputs,
inputs,
lib,
pkgs, pkgs,
videoDrivers ? [], videoDrivers ? [],
... ...
@@ -56,12 +54,17 @@
''exec bunx mcp-remote@latest https://mcp.honcho.dev --header "Authorization:Bearer $(cat /run/agenix/honcho-key)" --header "X-Honcho-User-Name:m3tam3re"'' ''exec bunx mcp-remote@latest https://mcp.honcho.dev --header "Authorization:Bearer $(cat /run/agenix/honcho-key)" --header "X-Honcho-User-Name:m3tam3re"''
]; ];
}; };
Playwright = {
command = "bash";
args = ["-c" "exec bunx @playwright/mcp@latest"];
};
}; };
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
agenix-cli agenix-cli
agent-browser agent-browser
m3taHomeInputs.agent-lib.packages.${pkgs.stdenv.hostPlatform.system}.agent-lib-cli
beads beads
pi-coding-agent pi-coding-agent
(qmd.override { (qmd.override {
@@ -71,5 +74,6 @@
# opencode-desktop # opencode-desktop
openshell openshell
openspec openspec
openwork
]; ];
} }
+3 -4
View File
@@ -227,12 +227,11 @@
output = 64000; output = 64000;
}; };
}; };
"claude-opus-4-6" = { "claude-opus-4-8" = {
name = "Claude Opus 4.6"; name = "Claude Opus 4.8";
options = { options = {
thinking = { thinking = {
type = "enabled"; type = "adaptive";
budget_tokens = 16000;
}; };
}; };
limit = { limit = {
+64 -64
View File
@@ -44,107 +44,107 @@
programs.ssh = { programs.ssh = {
enable = true; enable = true;
enableDefaultConfig = false; enableDefaultConfig = false;
matchBlocks = { settings = {
"github.com" = { "github.com" = {
hostname = "github.com"; HostName = "github.com";
user = "m3tam3re"; User = "m3tam3re";
port = 22; Port = 22;
identityFile = "~/.ssh/github"; IdentityFile = "~/.ssh/github";
}; };
"code.m3ta.dev" = { "code.m3ta.dev" = {
hostname = "code.m3ta.dev"; HostName = "code.m3ta.dev";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/gitea"; IdentityFile = "~/.ssh/gitea";
}; };
"lkk-nix-1" = { "lkk-nix-1" = {
hostname = "89.58.10.189"; HostName = "89.58.10.189";
user = "lkk-admin"; User = "lkk-admin";
identityFile = "~/.ssh/lkk-admin"; IdentityFile = "~/.ssh/lkk-admin";
}; };
"m3-r1" = { "m3-r1" = {
hostname = "202.61.226.110"; HostName = "202.61.226.110";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-deck" = { "m3-deck" = {
hostname = "192.168.178.193"; HostName = "192.168.178.193";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-kratos-vm" = { "m3-kratos-vm" = {
hostname = "192.168.122.43"; HostName = "192.168.122.43";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-helios" = { "m3-helios" = {
hostname = "192.168.178.210"; HostName = "192.168.178.210";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-ares" = { "m3-ares" = {
hostname = "192.168.1.30"; HostName = "192.168.1.30";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-atlas" = { "m3-atlas" = {
hostname = "152.53.85.162"; HostName = "152.53.85.162";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-hermes" = { "m3-hermes" = {
hostname = "204.168.229.93"; HostName = "204.168.229.93";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"hermes" = { "hermes" = {
hostname = "46.224.0.92"; HostName = "46.224.0.92";
user = "admin"; User = "admin";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-zelda" = { "m3-zelda" = {
hostname = "95.217.189.186"; HostName = "95.217.189.186";
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-skynet" = { "m3-skynet" = {
hostname = "m3-skynet"; HostName = "m3-skynet";
user = "admin"; User = "admin";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"m3-prox-1" = { "m3-prox-1" = {
hostname = "192.168.1.110"; HostName = "192.168.1.110";
user = "root"; User = "root";
identityFile = "~/.ssh/m3tam3re"; IdentityFile = "~/.ssh/m3tam3re";
}; };
"shp-old" = { "shp-old" = {
hostname = "95.217.3.250"; HostName = "95.217.3.250";
port = 2222; Port = 2222;
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/self-host-playbook"; IdentityFile = "~/.ssh/self-host-playbook";
}; };
"shp-1" = { "shp-1" = {
hostname = "95.217.189.186"; HostName = "95.217.189.186";
port = 2222; Port = 2222;
user = "m3tam3re"; User = "m3tam3re";
identityFile = "~/.ssh/self-host-playbook"; IdentityFile = "~/.ssh/self-host-playbook";
}; };
"AZ-CLD-1" = { "AZ-CLD-1" = {
hostname = "152.53.186.119"; HostName = "152.53.186.119";
user = "sascha.koenig"; User = "sascha.koenig";
port = 2022; Port = 2022;
identityFile = "~/.ssh/sascha.koenig"; IdentityFile = "~/.ssh/sascha.koenig";
}; };
"AZ-PRM-1" = { "AZ-PRM-1" = {
hostname = "192.168.152.76"; HostName = "192.168.152.76";
user = "sascha.koenig"; User = "sascha.koenig";
port = 2022; Port = 2022;
identityFile = "~/.ssh/sascha.koenig"; IdentityFile = "~/.ssh/sascha.koenig";
}; };
"git.az-gruppe.com" = { "git.az-gruppe.com" = {
hostname = "git.az-gruppe.com"; HostName = "git.az-gruppe.com";
port = 2022; Port = 2022;
user = "sascha.koenig"; User = "sascha.koenig";
identityFile = "~/.ssh/sascha.koenig"; IdentityFile = "~/.ssh/sascha.koenig";
}; };
}; };
}; };