agentwheel 0.2.0
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/LICENSE +21 -0
- package/README.md +155 -0
- package/dist/index.js +1402 -0
- package/package.json +57 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 NestDevLab
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo.png" alt="agentwheel" width="120">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">agentwheel</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center"><strong>One source. Every agent.</strong></p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
Weave your skills, rules, and instructions across every AI agent you use —
|
|
11
|
+
from any source, kept in sync, with your private tweaks intact.
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Why agentwheel?
|
|
17
|
+
|
|
18
|
+
Your AI agents are multiplying. Claude here, Codex there, a couple of custom runtimes in the corner — and every one of them wants its skills, its rules, its own little `AGENTS.md`, in its own folder, in its own format.
|
|
19
|
+
|
|
20
|
+
So you copy-paste. You forget which agent has the latest version. You tweak a rule for one and it drifts out of sync with the rest. Multiply that by a team, and "keep the agents aligned" quietly becomes a part-time job.
|
|
21
|
+
|
|
22
|
+
**agentwheel makes it one job, done once.** Point it at your skills and instructions, tell it which agents you run, and it installs everything where each one expects it — then keeps it that way. Update upstream and your agents update. Make a local tweak and it survives the next update. Add a brand-new runtime nobody's ever heard of? Drop in a small config and it's a first-class target too.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm i -g agentwheel
|
|
26
|
+
agentwheel add github:your-org/agent-pack
|
|
27
|
+
agentwheel update --dry-run # show me what would change
|
|
28
|
+
agentwheel update # install into configured agents
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
No lock-in. No central gatekeeper. Your packages live in plain git repos, your customizations live in your own repo, and anything reachable by a URL just works.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
> **Status: early (v0.2).** The install spine and lifecycle core are real and tested — local/git
|
|
36
|
+
> sources, plan/sync/update/drift/uninstall, overlays, eject/remember, and pluggable adapters.
|
|
37
|
+
> Expect sharp edges.
|
|
38
|
+
|
|
39
|
+
## What it does
|
|
40
|
+
|
|
41
|
+
- **Installs** skills, rules, and instructions into each runtime's native location.
|
|
42
|
+
- **Keeps them in sync** — re-runnable, idempotent, with a manifest and drift detection so nothing silently clobbers your work.
|
|
43
|
+
- **Pluggable adapters** — each runtime is described by a small config; add your own without forking.
|
|
44
|
+
- **Pluggable sources** — pull packages from local paths, git, or skill ecosystems.
|
|
45
|
+
- **Your customizations are first-class** — layer, extend, override, or take full ownership, and survive updates.
|
|
46
|
+
|
|
47
|
+
## Quick start
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm i -g agentwheel
|
|
51
|
+
|
|
52
|
+
agentwheel init
|
|
53
|
+
agentwheel add github:your-org/agent-pack --adapter openclaw --mode tracking
|
|
54
|
+
agentwheel update --dry-run
|
|
55
|
+
agentwheel update
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Prefer pnpm? `pnpm add -g agentwheel` works too.
|
|
59
|
+
|
|
60
|
+
Contributor install from source:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git clone https://github.com/NestDevLab/agentwheel
|
|
64
|
+
cd agentwheel
|
|
65
|
+
pnpm install
|
|
66
|
+
pnpm build
|
|
67
|
+
pnpm link --global
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`plan`, `sync --dry-run`, and `update --dry-run` show exactly what would change before anything is written. They're the commands to trust.
|
|
71
|
+
|
|
72
|
+
## Core ideas
|
|
73
|
+
|
|
74
|
+
**Three places, one direction:**
|
|
75
|
+
|
|
76
|
+
| | Where | What |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| **Author** | the package's git repo | upstream content — never edited in place |
|
|
79
|
+
| **Workspace** | your repo, under `.agentwheel/` | your config, locks, and customizations |
|
|
80
|
+
| **Runtime** | `.openclaw/`, `~/.claude/`, … | generated output — never hand-edited |
|
|
81
|
+
|
|
82
|
+
Flow: **author + your workspace → `sync` → runtime**.
|
|
83
|
+
|
|
84
|
+
## Packages
|
|
85
|
+
|
|
86
|
+
A package is a git repo (or folder) with a JSON manifest and a canonical layout:
|
|
87
|
+
|
|
88
|
+
```jsonc
|
|
89
|
+
// agentwheel.json (plain JSON or JSONC — both work)
|
|
90
|
+
{
|
|
91
|
+
"schemaVersion": 1,
|
|
92
|
+
"name": "your-org/agent-pack",
|
|
93
|
+
"version": "0.1.0",
|
|
94
|
+
"provides": [
|
|
95
|
+
{ "type": "instructions", "path": "instructions/AGENTS.md" },
|
|
96
|
+
{ "type": "rules", "path": "rules" },
|
|
97
|
+
{ "type": "skills", "path": "skills" }
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Publish by pushing to any git host. A registry exists only for short names and discovery — it's
|
|
103
|
+
optional, and `agentwheel add <url|path>` always works without it.
|
|
104
|
+
|
|
105
|
+
## Customizing without getting overwritten
|
|
106
|
+
|
|
107
|
+
Drift detection blocks *accidental* edits to generated files. *Intentional* changes have four channels,
|
|
108
|
+
all stored in your `.agentwheel/` (never in the runtime dir, never in the author's repo):
|
|
109
|
+
|
|
110
|
+
- **Layer** — an editable region in your instructions that updates never touch. (This is how an agent can "remember X durably" without fighting drift.)
|
|
111
|
+
- **Add** — extra rule files composed alongside upstream.
|
|
112
|
+
- **Override** — replace a specific upstream item, visibly, in the plan.
|
|
113
|
+
- **Eject** — take an item into local ownership; updates leave it alone.
|
|
114
|
+
|
|
115
|
+
## Custom & private runtimes
|
|
116
|
+
|
|
117
|
+
A runtime adapter is just a config (capabilities + paths). Have an internal runtime you can't publish?
|
|
118
|
+
Write a `.jsonc` adapter and point at it — it's a first-class target, and nothing leaves your machine:
|
|
119
|
+
|
|
120
|
+
```jsonc
|
|
121
|
+
{
|
|
122
|
+
"name": "myco-internal",
|
|
123
|
+
"targets": {
|
|
124
|
+
"instructions": { "dest": ".myco/context/AGENTS.md" },
|
|
125
|
+
"rules": { "dest": ".myco/policy/rules" },
|
|
126
|
+
"skills": { "dest": ".myco/lib/skills" }
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
agentwheel sync ./my-pack --adapter-config ./myco-internal.jsonc
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Built-in adapters ship for common runtimes; declarative adapters need no code and stay private.
|
|
136
|
+
(Programmatic adapters, for logic beyond file placement, are planned behind an explicit opt-in.)
|
|
137
|
+
|
|
138
|
+
Copilot support is intentionally file-drop only: instructions, rules, and prompt/command files are
|
|
139
|
+
placed in GitHub-native locations, while raw `SKILL.md` directories stay disabled until there is a
|
|
140
|
+
clear conversion format.
|
|
141
|
+
|
|
142
|
+
## Roadmap
|
|
143
|
+
|
|
144
|
+
- [x] **v0.1** — install spine: local sources; openclaw/claude/codex adapters; skills/rules/instructions; `plan` · `sync` · `--dry-run` · `uninstall`; manifest + drift + idempotency.
|
|
145
|
+
- [x] **v0.2** — git source driver; `update` (pinned & tracking); overlays/additive/override/eject; `init`; hermes + copilot adapters; commands/mcp/hooks artifacts; OpenClaw semantic plugin planning.
|
|
146
|
+
- [ ] **v0.3** — registry & federation (skill ecosystems, MCP); profiles; programmatic adapters.
|
|
147
|
+
|
|
148
|
+
## Design docs
|
|
149
|
+
|
|
150
|
+
- [`DESIGN.md`](DESIGN.md) — architecture & module layout.
|
|
151
|
+
- [`LIFECYCLE.md`](LIFECYCLE.md) — publish / install / update / customize model.
|
|
152
|
+
|
|
153
|
+
## License
|
|
154
|
+
|
|
155
|
+
See [`LICENSE`](LICENSE).
|