omniagent 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +43 -5
- package/CONTRIBUTING.md +56 -0
- package/README.md +137 -267
- package/dist/cli.js +6349 -5164
- package/package.json +3 -2
- package/schemas/profile.v1.json +76 -0
- package/tasks.md +25 -0
package/CLAUDE.md
CHANGED
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
# omniagent Development Guidelines
|
|
2
2
|
|
|
3
|
-
Auto-generated from all feature plans. Last updated: 2026-
|
|
3
|
+
Auto-generated from all feature plans. Last updated: 2026-01-10
|
|
4
4
|
|
|
5
5
|
## Active Technologies
|
|
6
|
+
- TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js fs/promises + path (004-sync-agent-config)
|
|
7
|
+
- Filesystem (repo-local directories) (004-sync-agent-config)
|
|
8
|
+
- TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js fs/promises + path, Vitest, Vite, Biome (005-sync-slash-commands)
|
|
9
|
+
- Filesystem (repo `agents/commands/`, project target dirs, user home dirs) (005-sync-slash-commands)
|
|
10
|
+
- Filesystem (repo-local config + target directories) (006-add-custom-subagents)
|
|
11
|
+
- TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises`, `path`, Vitest, Vite, Biome (007-agent-templating)
|
|
12
|
+
- Filesystem (repo-local config + target directories + user home config) (007-agent-templating)
|
|
13
|
+
- Filesystem (repo-local agents/ directories and user home state under `~/.omniagent/state/`) (009-local-config-sync)
|
|
14
|
+
- Filesystem (repo-local sources/outputs + user home state under `~/.omniagent/state/`) (010-instruction-file-sync)
|
|
15
|
+
- Filesystem (repo-local `agents/` directory or user-supplied agents directory) (012-agents-dir-override)
|
|
16
|
+
- TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, @typescript/native-preview (tsgo), Vitest, Vite, Biome (013-fix-typecheck-ci)
|
|
17
|
+
- Filesystem (repo-local config and user home state) (013-fix-typecheck-ci)
|
|
18
|
+
- TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises` + `path`, Vite, Vitest, Biome (014-add-custom-targets)
|
|
19
|
+
- Filesystem (repo-local directories and user home state under `~/.omniagent/state/`) (014-add-custom-targets)
|
|
20
|
+
- TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises` + `path`, `jiti`, Vite, Vitest, Biome, @typescript/native-preview (tsgo) (015-cli-shim-flags)
|
|
21
|
+
- Filesystem (repo-local agents directory and user home state under `~/.omniagent/state/`) (015-cli-shim-flags)
|
|
22
|
+
- TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises` + `path`, Vitest, Vite, Biome (016-sync-default-agents)
|
|
23
|
+
- Filesystem (repo-local outputs and user home state under `~/.omniagent/state/`) (016-sync-default-agents)
|
|
6
24
|
|
|
7
|
-
- TypeScript 5.
|
|
25
|
+
- TypeScript 5.x, ES2022 target + yargs (CLI parsing), Vitest (testing), Vite (build), Biome (formatting/linting) (003-biome-integration)
|
|
26
|
+
|
|
27
|
+
- TypeScript 5.x, ES2022 target + yargs (CLI parsing), Vitest (testing) (002-vitest-cli-testing)
|
|
28
|
+
|
|
29
|
+
- TypeScript 5.x, Node.js 18+ + yargs (CLI parsing only) (001-cli-foundation)
|
|
8
30
|
|
|
9
31
|
## Project Structure
|
|
10
32
|
|
|
@@ -15,15 +37,31 @@ tests/
|
|
|
15
37
|
|
|
16
38
|
## Commands
|
|
17
39
|
|
|
18
|
-
npm
|
|
40
|
+
npm run check && npm test
|
|
19
41
|
|
|
20
42
|
## Code Style
|
|
21
43
|
|
|
22
|
-
TypeScript 5.
|
|
44
|
+
TypeScript 5.x, Node.js 18+: Enforced by Biome (formatting and linting)
|
|
45
|
+
- Line width: 100 characters
|
|
46
|
+
- Indentation: Tabs (2-space width)
|
|
47
|
+
- Quotes: Double quotes
|
|
48
|
+
- Semicolons: Always
|
|
49
|
+
- Run `npm run format` before committing
|
|
23
50
|
|
|
24
51
|
## Recent Changes
|
|
52
|
+
- 016-sync-default-agents: Added TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises` + `path`, Vitest, Vite, Biome
|
|
53
|
+
- 015-cli-shim-flags: Added TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises` + `path`, `jiti`, Vite, Vitest, Biome, @typescript/native-preview (tsgo)
|
|
54
|
+
- 014-add-custom-targets: Added TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises` + `path`, Vite, Vitest, Biome
|
|
55
|
+
|
|
56
|
+
|
|
25
57
|
|
|
26
|
-
- 017-dynamic-template-scripts: Added TypeScript 5.9 (ES2022) on Node.js 18+ + yargs, Node.js `fs/promises` + `path` + `child_process`, Vitest, Vite, Biome
|
|
27
58
|
|
|
28
59
|
<!-- MANUAL ADDITIONS START -->
|
|
60
|
+
- Dynamic template scripts (`<nodejs>` and `<shell>`) are a shared sync runtime feature and apply across all
|
|
61
|
+
syncable template surfaces (skills, subagents, slash commands, and instruction templates).
|
|
62
|
+
- Any future syncable surface must integrate with the shared template-script runtime instead of
|
|
63
|
+
introducing surface-specific script execution behavior.
|
|
64
|
+
- Keep ignore and publish rules aligned with tool-specific directories so package publishes stay
|
|
65
|
+
clean.
|
|
66
|
+
- CLI shim E2E docs: `docs/cli-shim-e2e.md`.
|
|
29
67
|
<!-- MANUAL ADDITIONS END -->
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
This document is for contributors and maintainers working on the `omniagent` codebase.
|
|
4
|
+
|
|
5
|
+
If you are using `omniagent` as an npm package consumer, start with [`README.md`](README.md).
|
|
6
|
+
|
|
7
|
+
## Local Setup
|
|
8
|
+
|
|
9
|
+
- Node.js 18+
|
|
10
|
+
- npm
|
|
11
|
+
|
|
12
|
+
Install dependencies:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm ci
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Local Validation
|
|
19
|
+
|
|
20
|
+
Run the same checks used by CI before opening a PR:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm run check
|
|
24
|
+
npm run typecheck
|
|
25
|
+
npm test
|
|
26
|
+
npm run build
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Docs Changes
|
|
30
|
+
|
|
31
|
+
When updating docs, keep root `README.md` consumer-focused.
|
|
32
|
+
|
|
33
|
+
- End-user usage and product behavior belong in `README.md` and `docs/*.md`.
|
|
34
|
+
- Development and contribution workflows belong in `CONTRIBUTING.md`.
|
|
35
|
+
- Update docs assertions in `tests/docs/readme.test.ts` when docs architecture changes.
|
|
36
|
+
|
|
37
|
+
## CLI Shim E2E (Contributor Workflow)
|
|
38
|
+
|
|
39
|
+
CLI shim E2E is a contributor-only verification flow and is not required for normal package usage.
|
|
40
|
+
|
|
41
|
+
Detailed guide:
|
|
42
|
+
|
|
43
|
+
- [`docs/cli-shim-e2e.md`](docs/cli-shim-e2e.md)
|
|
44
|
+
|
|
45
|
+
Quick commands:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Build first
|
|
49
|
+
npm run build
|
|
50
|
+
|
|
51
|
+
# Record baseline outputs from real CLIs
|
|
52
|
+
OA_E2E_RECORD_BASELINE=1 npm test -- tests/e2e/cli-shim/cli-shim.e2e.test.ts
|
|
53
|
+
|
|
54
|
+
# Compare shim output to recorded baselines
|
|
55
|
+
OA_E2E=1 npm test -- tests/e2e/cli-shim/cli-shim.e2e.test.ts
|
|
56
|
+
```
|
package/README.md
CHANGED
|
@@ -1,339 +1,209 @@
|
|
|
1
1
|
# omniagent
|
|
2
2
|
|
|
3
|
-
One config,
|
|
3
|
+
One source of truth for agent config across Claude, Codex, Gemini, and Copilot (and [any other agent](docs/custom-targets.md))
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
content once and sync it to Claude Code, OpenAI Codex, GitHub Copilot CLI, and Gemini CLI.
|
|
5
|
+
Define canonical agent files once in `agents/`, then run `sync` to compile target-specific outputs.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
.claude/agents/release-helper.md
|
|
11
|
-
.codex/skills/release-helper/SKILL.md
|
|
12
|
-
.gemini/skills/release-helper/SKILL.md
|
|
13
|
-
.copilot/skills/release-helper/SKILL.md
|
|
14
|
-
|
|
15
|
-
# After (single source of truth)
|
|
16
|
-
agents/agents/release-helper.md
|
|
17
|
-
npx omniagent@latest sync
|
|
18
|
-
```
|
|
7
|
+
- Teams can keep one shared agent configuration while each teammate uses their preferred CLI.
|
|
8
|
+
- Agent enthusiasts can try out the newest agents, and switch back, without manually porting all their config.
|
|
19
9
|
|
|
20
|
-
|
|
10
|
+

|
|
21
11
|
|
|
22
|
-
|
|
12
|
+
## Quickstart
|
|
13
|
+
|
|
14
|
+
Author once in `agents/`, sync everywhere.
|
|
15
|
+
|
|
16
|
+
Subagents example:
|
|
17
|
+
|
|
18
|
+
```md
|
|
19
|
+
# ./agents/agents/release-helper.md
|
|
23
20
|
|
|
24
|
-
```bash
|
|
25
|
-
mkdir -p agents/agents
|
|
26
|
-
cat > agents/agents/release-helper.md <<'AGENT'
|
|
27
21
|
---
|
|
22
|
+
|
|
28
23
|
name: release-helper
|
|
29
24
|
description: "Help draft release plans and checklists."
|
|
25
|
+
|
|
30
26
|
---
|
|
31
|
-
Draft a release plan with milestones and owners.
|
|
32
|
-
AGENT
|
|
33
27
|
|
|
34
|
-
|
|
28
|
+
Draft a release plan with milestones and owners.
|
|
35
29
|
```
|
|
36
30
|
|
|
37
|
-
|
|
31
|
+
Codex does not support subagents. Omniagent
|
|
32
|
+
converts the canonical file into Codex's skill format (and the equivalent format for other
|
|
33
|
+
supported CLIs).
|
|
34
|
+
|
|
35
|
+
After `sync`, outputs include:
|
|
38
36
|
|
|
39
37
|
```text
|
|
40
|
-
.claude/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
.
|
|
38
|
+
.claude/
|
|
39
|
+
agents/
|
|
40
|
+
release-helper.md
|
|
41
|
+
.codex/
|
|
42
|
+
skills/
|
|
43
|
+
release-helper/
|
|
44
|
+
SKILL.md
|
|
44
45
|
```
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
## How It Works
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
1. Author canonical sources in `agents/` (and optional repo `AGENTS.md`).
|
|
50
|
+
2. Run `omniagent sync`.
|
|
51
|
+
3. Omniagent writes target-specific files, converting unsupported surfaces when needed.
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
`--agent` or set a `defaultAgent` in `agents/omniagent.config.*`.
|
|
53
|
+
## Common Commands
|
|
52
54
|
|
|
53
55
|
```bash
|
|
54
|
-
#
|
|
55
|
-
omniagent
|
|
56
|
-
|
|
57
|
-
# One-shot prompt
|
|
58
|
-
omniagent -p "Summarize the repo" --agent codex --output json
|
|
59
|
-
|
|
60
|
-
# Piped stdin
|
|
61
|
-
echo "Summarize the repo" | omniagent --agent codex
|
|
62
|
-
|
|
63
|
-
# Passthrough to agent CLI
|
|
64
|
-
omniagent --agent codex -- --some-agent-flag --model gpt-5
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Shared flags:
|
|
68
|
-
|
|
69
|
-
- `--approval <prompt|auto-edit|yolo>` (aliases: `--auto-edit`, `--yolo`)
|
|
70
|
-
- `--sandbox <workspace-write|off>` (defaults to `off` when `--yolo` is set and `--sandbox` is
|
|
71
|
-
not explicit)
|
|
72
|
-
- `--output <text|json|stream-json>` (aliases: `--json`, `--stream-json`)
|
|
73
|
-
- `--model <name>`
|
|
74
|
-
- `--web <on|off|true|false|1|0>` (bare `--web` enables)
|
|
75
|
-
|
|
76
|
-
Notes:
|
|
77
|
-
|
|
78
|
-
- `--` passthrough is only valid after `--agent`.
|
|
79
|
-
- Unsupported shared flags emit a warning and are ignored.
|
|
80
|
-
- Agent output is passed through unmodified for all output formats.
|
|
81
|
-
- Some approval values are agent-specific (for example, Claude ignores `--approval auto-edit`
|
|
82
|
-
and warns).
|
|
83
|
-
- Output formats are only supported in one-shot mode for agents that expose them; interactive runs
|
|
84
|
-
warn when explicitly set.
|
|
85
|
-
|
|
86
|
-
### Shared-flag capability matrix
|
|
56
|
+
# Sync all supported agent CLIs installed on your system
|
|
57
|
+
npx omniagent@latest sync
|
|
87
58
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
| codex | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
91
|
-
| claude | ✓ | ✗ | ✓ | ✓ | ✗ |
|
|
92
|
-
| gemini | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
93
|
-
| copilot | ✓ | ✗ | ✗ | ✓ | ✗ |
|
|
59
|
+
# Sync specific targets
|
|
60
|
+
npx omniagent@latest sync --only claude,codex
|
|
94
61
|
|
|
95
|
-
|
|
62
|
+
# Skip a target for this run
|
|
63
|
+
npx omniagent@latest sync --skip codex
|
|
96
64
|
|
|
97
|
-
|
|
65
|
+
# Use a non-default agents directory
|
|
66
|
+
npx omniagent@latest sync --agentsDir ./my-custom-agents
|
|
98
67
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
name: release-helper
|
|
103
|
-
description: "Help draft release plans and checklists."
|
|
104
|
-
---
|
|
105
|
-
Draft a release plan with milestones and owners.
|
|
106
|
-
```
|
|
68
|
+
# Show local-only overrides and exit
|
|
69
|
+
npx omniagent@latest sync --list-local
|
|
107
70
|
|
|
108
|
-
|
|
71
|
+
# Apply a sync profile (see docs/profiles.md)
|
|
72
|
+
npx omniagent@latest sync --profile code-reviewer
|
|
109
73
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
74
|
+
# Shim mode (no subcommand)
|
|
75
|
+
omniagent --agent codex
|
|
76
|
+
omniagent -p "Summarize this repo" --agent codex --output json
|
|
113
77
|
```
|
|
114
78
|
|
|
115
|
-
|
|
79
|
+
## Local Overrides (`.local`)
|
|
116
80
|
|
|
117
|
-
|
|
118
|
-
agents/commands/review.md
|
|
119
|
-
---
|
|
120
|
-
description: "Review a diff with a strict checklist."
|
|
121
|
-
---
|
|
122
|
-
Summarize issues by severity with file/line references.
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Instruction files
|
|
81
|
+
Use `.local` files for personal variants that should not become team defaults.
|
|
126
82
|
|
|
127
83
|
```text
|
|
128
|
-
|
|
129
|
-
|
|
84
|
+
agents/
|
|
85
|
+
AGENTS.local.md # opinionated personal override
|
|
86
|
+
commands/
|
|
87
|
+
deploy.md # committed to git
|
|
88
|
+
deploy.local.md # opinionated personal override
|
|
89
|
+
skills/
|
|
90
|
+
ppt/
|
|
91
|
+
SKILL.md # committed to git
|
|
92
|
+
SKILL.local.md # opinionated personal override
|
|
130
93
|
```
|
|
131
94
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
1. Author canonical files in `agents/` (and/or repo `AGENTS.md`).
|
|
135
|
-
2. Run `omniagent sync`.
|
|
136
|
-
3. Omniagent writes the right files for each target tool.
|
|
137
|
-
|
|
138
|
-
## Supported targets
|
|
139
|
-
|
|
140
|
-
- Claude Code (native subagents + skills + slash commands)
|
|
141
|
-
- OpenAI Codex (skills + global slash-command prompts; subagents converted to skills)
|
|
142
|
-
- GitHub Copilot CLI (skills; slash commands + subagents converted to skills)
|
|
143
|
-
- Gemini CLI (skills require `experimental.skills`; slash commands project/global;
|
|
144
|
-
subagents converted to skills)
|
|
145
|
-
|
|
146
|
-
## Repo layout (canonical sources)
|
|
95
|
+
`./agents/.local/` is also supported. This can be used for libraries for your personal tooling, that should not be shared with the team:
|
|
147
96
|
|
|
148
97
|
```text
|
|
149
98
|
agents/
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
.local/ # personal overrides (ignored in outputs)
|
|
154
|
-
AGENTS.md # repo-wide instructions (optional)
|
|
99
|
+
.local/
|
|
100
|
+
commands/my-personal-command.md
|
|
101
|
+
skills/my-personal-skill/SKILL.md
|
|
155
102
|
```
|
|
156
103
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
## Use cases
|
|
161
|
-
|
|
162
|
-
- **Keep a team-wide review assistant consistent** while each person uses their preferred tool.
|
|
163
|
-
- **Ship one release-helper subagent** that works everywhere.
|
|
164
|
-
- **Avoid tool wars** by supporting Claude, Codex, Gemini, and Copilot from one source of truth.
|
|
165
|
-
- **Layer personal tweaks** without polluting the repo using `.local` overrides.
|
|
166
|
-
|
|
167
|
-
## Requirements
|
|
168
|
-
|
|
169
|
-
- Node.js 18+
|
|
170
|
-
|
|
171
|
-
## Local validation
|
|
104
|
+
If a `.local` item matches a shared item name, the local item wins for your sync run. Generated
|
|
105
|
+
outputs do not keep the `.local` suffix.
|
|
172
106
|
|
|
173
|
-
|
|
107
|
+
Use `--list-local` to see active local items, or `--exclude-local` to ignore them for a run.
|
|
174
108
|
|
|
175
|
-
|
|
176
|
-
2. `npm run check`
|
|
177
|
-
3. `npm run typecheck`
|
|
178
|
-
4. `npm test`
|
|
179
|
-
5. `npm run build`
|
|
109
|
+
Example `.gitignore` entries:
|
|
180
110
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
```yaml
|
|
186
|
-
---
|
|
187
|
-
name: release-helper
|
|
188
|
-
targets: [claude, gemini]
|
|
189
|
-
---
|
|
111
|
+
```gitignore
|
|
112
|
+
agents/.local/
|
|
113
|
+
agents/**/*.local*
|
|
190
114
|
```
|
|
191
115
|
|
|
192
|
-
|
|
193
|
-
- `name`: overrides filename when supported.
|
|
194
|
-
- `description`: optional metadata.
|
|
195
|
-
|
|
196
|
-
### Custom targets (omniagent.config.*)
|
|
197
|
-
|
|
198
|
-
Define custom targets in the agents directory. The CLI auto-discovers the first match in:
|
|
199
|
-
`omniagent.config.ts`, `.mts`, `.cts`, `.js`, `.mjs`, `.cjs`.
|
|
200
|
-
|
|
201
|
-
```ts
|
|
202
|
-
const config = {
|
|
203
|
-
targets: [
|
|
204
|
-
{
|
|
205
|
-
id: "acme",
|
|
206
|
-
displayName: "Acme Agent",
|
|
207
|
-
outputs: {
|
|
208
|
-
skills: "{repoRoot}/.acme/skills/{itemName}",
|
|
209
|
-
subagents: "{repoRoot}/.acme/agents/{itemName}.md",
|
|
210
|
-
commands: {
|
|
211
|
-
projectPath: "{repoRoot}/.acme/commands/{itemName}.md",
|
|
212
|
-
userPath: "{homeDir}/.acme/commands/{itemName}.md",
|
|
213
|
-
},
|
|
214
|
-
instructions: "AGENTS.md",
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
],
|
|
218
|
-
disableTargets: ["copilot"],
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
export default config;
|
|
222
|
-
```
|
|
116
|
+
## Sync Profiles
|
|
223
117
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
- When multiple targets resolve to the same output file, default writers handle
|
|
229
|
-
skills/subagents/instructions. Command collisions are errors.
|
|
118
|
+
Profiles let each dev pick a named, checked-in filter that `sync` applies to
|
|
119
|
+
the shared `agents/` directory — so a ten-person team can share one source of
|
|
120
|
+
truth while each member opts in to exactly the skills, subagents, commands,
|
|
121
|
+
and targets they want.
|
|
230
122
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
123
|
+
```jsonc
|
|
124
|
+
// agents/profiles/code-reviewer.json
|
|
125
|
+
{
|
|
126
|
+
"description": "Focused setup for PR reviews",
|
|
127
|
+
"extends": "base",
|
|
128
|
+
"targets": { "claude": { "enabled": true }, "codex": { "enabled": true } },
|
|
129
|
+
"enable": {
|
|
130
|
+
"skills": ["code-review", "security-review"],
|
|
131
|
+
"subagents": ["reviewer"],
|
|
132
|
+
"commands": ["review", "diff-summary"]
|
|
133
|
+
},
|
|
134
|
+
"variables": { "REVIEW_STYLE": "terse" }
|
|
135
|
+
}
|
|
241
136
|
```
|
|
242
137
|
|
|
243
|
-
|
|
244
|
-
|
|
138
|
+
```bash
|
|
139
|
+
omniagent sync # uses agents/profiles/default.json when present
|
|
140
|
+
omniagent sync --profile code-reviewer
|
|
141
|
+
omniagent sync --profile base,code-reviewer # merge multiple (later wins)
|
|
142
|
+
omniagent sync --var REVIEW_STYLE=thorough # override a variable from the CLI
|
|
143
|
+
```
|
|
245
144
|
|
|
246
|
-
|
|
145
|
+
Profiles support `extends` chains, `.local` overrides (personal, gitignored),
|
|
146
|
+
glob-based `enable`/`disable` lists, per-target toggles, and template
|
|
147
|
+
variables. Discover and validate profiles with `omniagent profiles`,
|
|
148
|
+
`omniagent profiles show <name>`, and `omniagent profiles validate`.
|
|
247
149
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
agents/skills/review-helper.local/SKILL.md
|
|
251
|
-
```
|
|
150
|
+
See [`docs/profiles.md`](docs/profiles.md) for the full schema, resolution
|
|
151
|
+
order, and examples.
|
|
252
152
|
|
|
253
|
-
|
|
153
|
+
## Basic Templating
|
|
254
154
|
|
|
255
|
-
|
|
155
|
+
Use `<agents ...>` blocks when some text should render only for specific targets.
|
|
256
156
|
|
|
257
|
-
```
|
|
258
|
-
Shared
|
|
157
|
+
```md
|
|
158
|
+
Shared guidance for all targets.
|
|
259
159
|
|
|
260
160
|
<agents claude,codex>
|
|
261
|
-
|
|
262
|
-
</agents>
|
|
263
|
-
|
|
264
|
-
<agents not:claude,gemini>
|
|
265
|
-
Everyone except Claude and Gemini see this.
|
|
161
|
+
Extra instructions only for Claude and Codex.
|
|
266
162
|
</agents>
|
|
267
163
|
```
|
|
268
164
|
|
|
269
|
-
|
|
165
|
+
For advanced templating and dynamic scripts (`<nodejs>`, `<shell>`), see
|
|
166
|
+
[`docs/templating.md`](docs/templating.md).
|
|
270
167
|
|
|
271
|
-
|
|
168
|
+
## Agent CLI Shim
|
|
272
169
|
|
|
273
|
-
|
|
170
|
+
Omniagent provides a CLI shim (`omniagent` without a subcommand) for working with agent CLIs via a unified interface.
|
|
274
171
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
.filter((name) => name.endsWith(".md"))
|
|
285
|
-
.sort();
|
|
286
|
-
|
|
287
|
-
return pages.map((name) => `- ${name}`).join("\n");
|
|
288
|
-
</nodejs>
|
|
172
|
+
This can be useful for CI/CD and shell scripts, while maintaining full portability between agents:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# code-review.sh
|
|
176
|
+
#!/usr/bin/env bash
|
|
177
|
+
set -euo pipefail
|
|
178
|
+
agent="${1:-claude}"
|
|
179
|
+
|
|
180
|
+
omniagent -p "Perform comprehensive code review for this branch against main" --agent "$agent"
|
|
289
181
|
```
|
|
290
182
|
|
|
291
|
-
|
|
183
|
+
Example usage:
|
|
292
184
|
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
for file in docs/*.md; do
|
|
297
|
-
[ -f "$file" ] || continue
|
|
298
|
-
printf -- "- %s\n" "$(basename "$file")"
|
|
299
|
-
done | sort
|
|
300
|
-
</shell>
|
|
185
|
+
```bash
|
|
186
|
+
./code-review.sh
|
|
187
|
+
./code-review.sh codex
|
|
301
188
|
```
|
|
302
189
|
|
|
303
|
-
|
|
190
|
+
## Documentation
|
|
304
191
|
|
|
305
|
-
-
|
|
306
|
-
-
|
|
307
|
-
-
|
|
308
|
-
-
|
|
309
|
-
-
|
|
310
|
-
|
|
311
|
-
-
|
|
312
|
-
-
|
|
313
|
-
-
|
|
314
|
-
-
|
|
315
|
-
- Routine per-script telemetry is quiet by default and shown only with `sync --verbose`.
|
|
192
|
+
- Docs index: [`docs/README.md`](docs/README.md)
|
|
193
|
+
- Getting started: [`docs/getting-started.md`](docs/getting-started.md)
|
|
194
|
+
- Sync basics: [`docs/sync-basics.md`](docs/sync-basics.md)
|
|
195
|
+
- CLI shim details: [`docs/cli-shim.md`](docs/cli-shim.md)
|
|
196
|
+
- Custom targets (custom agents): [`docs/custom-targets.md`](docs/custom-targets.md)
|
|
197
|
+
- Local overrides: [`docs/local-overrides.md`](docs/local-overrides.md)
|
|
198
|
+
- Sync profiles: [`docs/profiles.md`](docs/profiles.md)
|
|
199
|
+
- Templating and dynamic scripts: [`docs/templating.md`](docs/templating.md)
|
|
200
|
+
- Command reference: [`docs/reference.md`](docs/reference.md)
|
|
201
|
+
- Troubleshooting: [`docs/troubleshooting.md`](docs/troubleshooting.md)
|
|
316
202
|
|
|
317
|
-
##
|
|
203
|
+
## Requirements
|
|
318
204
|
|
|
319
|
-
|
|
320
|
-
npx omniagent@latest sync
|
|
321
|
-
npx omniagent@latest sync --only claude
|
|
322
|
-
npx omniagent@latest sync --skip codex
|
|
323
|
-
npx omniagent@latest sync --exclude-local
|
|
324
|
-
npx omniagent@latest sync --exclude-local=skills,commands
|
|
325
|
-
npx omniagent@latest sync --agentsDir ./my-custom-agents
|
|
326
|
-
npx omniagent@latest sync --list-local
|
|
327
|
-
npx omniagent@latest sync --yes
|
|
328
|
-
npx omniagent@latest sync --verbose
|
|
329
|
-
npx omniagent@latest sync --json
|
|
330
|
-
```
|
|
205
|
+
- Node.js 18+
|
|
331
206
|
|
|
332
|
-
|
|
207
|
+
## Contributing
|
|
333
208
|
|
|
334
|
-
|
|
335
|
-
- `--skip` filters the active target set (frontmatter defaults or all targets).
|
|
336
|
-
- `--exclude-local` omits local sources entirely (or only for the listed categories).
|
|
337
|
-
- `--list-local` prints detected local items and exits.
|
|
338
|
-
- `--agentsDir` points to the agents directory (default `agents/`, resolved from the repo root).
|
|
339
|
-
- If both are provided, `--only` applies first, then `--skip`.
|
|
209
|
+
Development and test workflows are documented in [`CONTRIBUTING.md`](CONTRIBUTING.md).
|