Compare commits

...
3 Commits
4 changed files with 22 additions and 20 deletions
+6 -6
View File
@@ -46,10 +46,10 @@ Restrict the install to a single asset category with `--filter`:
```sh ```sh
coyote --install <you>/coyote-bundle-template --filter agents coyote --install <you>/coyote-bundle-template --filter agents
coyote --install <you>/coyote-bundle-template --filter mcp_config coyote --install <you>/coyote-bundle-template --filter mcp-config
``` ```
Valid filter values: `agents`, `roles`, `skills`, `macros`, `functions`, `mcp_config`. Valid filter values: `agents`, `roles`, `skills`, `macros`, `functions`, `mcp-config`.
Skip per-file conflict prompts with `--install-force`: Skip per-file conflict prompts with `--install-force`:
@@ -125,13 +125,13 @@ coyote-bundle-template/
│ └── SKILL.md # Skill with frontmatter + body │ └── SKILL.md # Skill with frontmatter + body
├── macros/ ├── macros/
│ └── <macro-name>.yaml # Positional/rest-args + REPL command steps │ └── <macro-name>.yaml # Positional/rest-args + REPL command steps
├── mcp.json # MCP server config (merged with local)
└── functions/ └── functions/
├── tools/ ├── tools/
│ └── *.sh / *.py / *.ts # Global tools (auto chmod +x on install) │ └── *.sh / *.py / *.ts # Global tools (auto chmod +x on install)
└── mcp.json # MCP server config (merged with local)
``` ```
The `functions/mcp.json` file is **merged** into your existing local file The `mcp.json` file is **merged** into your existing local file
on install (not overwritten). For conflicting server names, you'll be on install (not overwritten). For conflicting server names, you'll be
prompted to keep yours, take the remote's, or rename the remote entry. prompted to keep yours, take the remote's, or rename the remote entry.
On update, entries the bundle installed and you never edited take the On update, entries the bundle installed and you never edited take the
@@ -146,7 +146,7 @@ remote side automatically.
| Skill | `skills/rust-fmt/SKILL.md` | Skill demonstrating `enabled_tools` + `auto_unload`. | | Skill | `skills/rust-fmt/SKILL.md` | Skill demonstrating `enabled_tools` + `auto_unload`. |
| Macro | `macros/greet.yaml` | Macro showing positional and rest-arg variables. | | Macro | `macros/greet.yaml` | Macro showing positional and rest-arg variables. |
| Tool | `functions/tools/greet.sh` | Bash tool using Coyote's argc-style annotations. | | Tool | `functions/tools/greet.sh` | Bash tool using Coyote's argc-style annotations. |
| MCP | `functions/mcp.json` | One vanilla server + one with a vault secret reference. | | MCP | `mcp.json` | One vanilla server + one with a vault secret reference. |
Each sample is intentionally minimal. Replace it with your own work, or Each sample is intentionally minimal. Replace it with your own work, or
delete what you don't need. delete what you don't need.
@@ -184,7 +184,7 @@ Bash, Python, and TypeScript scripts are auto-detected and given the
executable bit on install. executable bit on install.
### MCP servers ### MCP servers
Add or modify entries in `functions/mcp.json` Add or modify entries in `mcp.json`
([MCP Servers wiki](https://github.com/Dark-Alex-17/coyote/wiki/MCP-Servers)). ([MCP Servers wiki](https://github.com/Dark-Alex-17/coyote/wiki/MCP-Servers)).
Use `{{SECRET_NAME}}` placeholders for values you don't want to commit; Use `{{SECRET_NAME}}` placeholders for values you don't want to commit;
Coyote will detect missing secrets after the merge and prompt you to add Coyote will detect missing secrets after the merge and prompt you to add
+4 -3
View File
@@ -1,4 +1,4 @@
schemaVersion: "1" schemaVersion: '2'
kind: mixin kind: mixin
name: agent-hello name: agent-hello
description: > description: >
@@ -8,13 +8,14 @@ description: >
install inside the sandbox and any network domains it needs to reach. install inside the sandbox and any network domains it needs to reach.
Delete this file if your agent doesn't need extra sandbox setup. Delete this file if your agent doesn't need extra sandbox setup.
network: permissions:
network:
allowedDomains: allowedDomains:
# Replace with the domains your agent actually hits. # Replace with the domains your agent actually hits.
# Example: an agent that calls api.example.com would add: # Example: an agent that calls api.example.com would add:
# - "api.example.com:443" # - "api.example.com:443"
commands: setup:
install: install:
# Replace with any binaries your agent depends on. Runs as the # Replace with any binaries your agent depends on. Runs as the
# `agent` user (UID 1000) with passwordless sudo. Example: # `agent` user (UID 1000) with passwordless sudo. Example:
+5 -4
View File
@@ -1,4 +1,4 @@
schemaVersion: "1" schemaVersion: '2'
kind: mixin kind: mixin
name: shared-custom-tools name: shared-custom-tools
description: > description: >
@@ -10,13 +10,14 @@ description: >
Delete this file if your fork doesn't need extra sandbox setup. Delete this file if your fork doesn't need extra sandbox setup.
network: permissions:
allowedDomains: network:
allow:
# Replace with the domains your custom tools reach. # Replace with the domains your custom tools reach.
# Example: a tool that calls a private API: # Example: a tool that calls a private API:
# - "api.your-company.com:443" # - "api.your-company.com:443"
commands: setup:
install: install:
# Replace with binaries your custom tools depend on. Runs as the # Replace with binaries your custom tools depend on. Runs as the
# `agent` user (UID 1000) with passwordless sudo. Example: # `agent` user (UID 1000) with passwordless sudo. Example:
View File