agentsys 5.13.4 → 6.0.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/.claude-plugin/marketplace.json +28 -28
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -3
- package/AGENTS.md +8 -8
- package/CHANGELOG.md +34 -0
- package/README.md +11 -116
- package/lib/binary/index.js +8 -2
- package/lib/binary/shared-helpers.js +160 -0
- package/lib/collectors/codebase.js +7 -2
- package/lib/collectors/documentation.js +8 -2
- package/lib/enhance/agent-patterns.js +17 -4
- package/lib/enhance/auto-suppression.js +19 -7
- package/lib/enhance/cross-file-analyzer.js +11 -4
- package/lib/enhance/docs-patterns.js +6 -2
- package/lib/enhance/fixer.js +22 -5
- package/lib/enhance/skill-patterns.js +5 -5
- package/lib/index.js +2 -0
- package/lib/repo-intel/cache.js +171 -0
- package/lib/repo-intel/converter.js +130 -0
- package/lib/repo-intel/embed/binary.js +242 -0
- package/lib/repo-intel/embed/index.js +26 -0
- package/lib/repo-intel/embed/orchestrator.js +239 -0
- package/lib/repo-intel/embed/preference.js +136 -0
- package/lib/repo-intel/enrich.js +198 -0
- package/lib/repo-intel/index.js +370 -0
- package/lib/repo-intel/installer.js +78 -0
- package/lib/repo-intel/queries.js +213 -13
- package/lib/repo-intel/updater.js +104 -0
- package/lib/repo-map/index.js +19 -254
- package/package.json +1 -1
- package/scripts/generate-docs.js +13 -18
- package/scripts/plugins.txt +2 -2
- package/site/assets/js/main.js +5 -13
- package/site/content.json +6 -23
- package/site/index.html +29 -77
- package/site/ux-spec.md +7 -7
- package/.kiro/agents/web-session.json +0 -12
- package/.kiro/skills/web-auth/SKILL.md +0 -177
- package/.kiro/skills/web-browse/SKILL.md +0 -516
package/scripts/generate-docs.js
CHANGED
|
@@ -55,7 +55,6 @@ const CATEGORY_MAP = {
|
|
|
55
55
|
'sync-docs': 'Cleanup',
|
|
56
56
|
'drift-detect': 'Analysis',
|
|
57
57
|
'repo-intel': 'Analysis',
|
|
58
|
-
'axiom': 'Memory',
|
|
59
58
|
'banthis': 'Memory',
|
|
60
59
|
'learn': 'AI Collaboration',
|
|
61
60
|
'agnix': 'Linting',
|
|
@@ -64,12 +63,13 @@ const CATEGORY_MAP = {
|
|
|
64
63
|
'skillers': 'AI Collaboration',
|
|
65
64
|
'skill-curator': 'Enhancement',
|
|
66
65
|
'system-prompt-curator': 'Enhancement',
|
|
67
|
-
'web-ctl': 'Web',
|
|
68
66
|
'ship': 'Release',
|
|
69
67
|
'onboard': 'Onboarding',
|
|
70
68
|
'can-i-help': 'Onboarding',
|
|
71
69
|
'audit-project': 'Code Review',
|
|
72
|
-
'glidemq': 'Message Queues'
|
|
70
|
+
'glidemq': 'Message Queues',
|
|
71
|
+
'mojo': 'Languages',
|
|
72
|
+
'ada-spark': 'Languages'
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
// Static skill definitions for cross-repo plugins (not discoverable locally)
|
|
@@ -100,13 +100,10 @@ const STATIC_SKILLS = [
|
|
|
100
100
|
{ plugin: 'sync-docs', name: 'sync-docs' },
|
|
101
101
|
{ plugin: 'drift-detect', name: 'drift-analysis' },
|
|
102
102
|
{ plugin: 'repo-intel', name: 'repo-intel' },
|
|
103
|
-
{ plugin: 'axiom', name: 'axiom' },
|
|
104
103
|
{ plugin: 'banthis', name: 'banthis' },
|
|
105
104
|
{ plugin: 'consult', name: 'consult' },
|
|
106
105
|
{ plugin: 'debate', name: 'debate' },
|
|
107
106
|
{ plugin: 'learn', name: 'learn' },
|
|
108
|
-
{ plugin: 'web-ctl', name: 'web-auth' },
|
|
109
|
-
{ plugin: 'web-ctl', name: 'web-browse' },
|
|
110
107
|
{ plugin: 'ship', name: 'release' },
|
|
111
108
|
{ plugin: 'skill-curator', name: 'skill-curator' },
|
|
112
109
|
{ plugin: 'system-prompt-curator', name: 'system-prompt-curator' },
|
|
@@ -115,6 +112,8 @@ const STATIC_SKILLS = [
|
|
|
115
112
|
{ plugin: 'onboard', name: 'onboard' },
|
|
116
113
|
{ plugin: 'can-i-help', name: 'can-i-help' },
|
|
117
114
|
{ plugin: 'audit-project', name: 'audit-project' },
|
|
115
|
+
{ plugin: 'mojo', name: 'mojo' },
|
|
116
|
+
{ plugin: 'ada-spark', name: 'ada-spark' },
|
|
118
117
|
{ plugin: 'glidemq', name: 'glide-mq' },
|
|
119
118
|
{ plugin: 'glidemq', name: 'glide-mq-migrate-bullmq' },
|
|
120
119
|
{ plugin: 'glidemq', name: 'glide-mq-migrate-bee' },
|
|
@@ -134,13 +133,11 @@ const PURPOSE_MAP = {
|
|
|
134
133
|
'drift-detect': 'Plan drift detection',
|
|
135
134
|
'repo-intel': 'Unified static analysis',
|
|
136
135
|
'sync-docs': 'Documentation sync',
|
|
137
|
-
'axiom': 'Durable agent-native memory',
|
|
138
136
|
'banthis': 'Durable negative behavior memory',
|
|
139
137
|
'learn': 'Topic research and learning guides',
|
|
140
138
|
'agnix': 'Agent config linting',
|
|
141
139
|
'consult': 'Cross-tool AI consultation',
|
|
142
140
|
'debate': 'Multi-perspective debate analysis',
|
|
143
|
-
'web-ctl': 'Browser automation for AI agents',
|
|
144
141
|
'skillers': 'Workflow pattern learning',
|
|
145
142
|
'skill-curator': 'Skill authoring and review',
|
|
146
143
|
'system-prompt-curator': 'System prompt curation',
|
|
@@ -193,10 +190,10 @@ function generateCommandsTable(commands) {
|
|
|
193
190
|
// Curated display order (featured commands first, then alphabetical)
|
|
194
191
|
const COMMAND_ORDER = [
|
|
195
192
|
'next-task', 'prepare-delivery', 'gate-and-ship',
|
|
196
|
-
'
|
|
193
|
+
'banthis', 'agnix', 'ship', 'deslop', 'perf',
|
|
197
194
|
'drift-detect', 'audit-project', 'enhance',
|
|
198
195
|
'repo-intel', 'sync-docs', 'learn', 'consult',
|
|
199
|
-
'debate', '
|
|
196
|
+
'debate', 'release', 'skillers',
|
|
200
197
|
'skill-curator', 'system-prompt-curator',
|
|
201
198
|
'onboard', 'can-i-help'
|
|
202
199
|
];
|
|
@@ -206,7 +203,6 @@ function generateCommandsTable(commands) {
|
|
|
206
203
|
'next-task': 'Task workflow: discovery, implementation, PR, merge',
|
|
207
204
|
'prepare-delivery': 'Pre-ship quality gates: deslop, review, validation, docs sync',
|
|
208
205
|
'gate-and-ship': 'Quality gates then ship (/prepare-delivery + /ship)',
|
|
209
|
-
'axiom': 'Durable memory: load, query, list, bootstrap projects, and record approved knowledge',
|
|
210
206
|
'banthis': 'Durable negative memory: persist banned agent behaviors',
|
|
211
207
|
'agnix': 'Lint agent configurations (399 rules)',
|
|
212
208
|
'ship': 'PR creation, CI monitoring, merge',
|
|
@@ -220,7 +216,6 @@ function generateCommandsTable(commands) {
|
|
|
220
216
|
'learn': 'Research topics, create learning guides',
|
|
221
217
|
'consult': 'Cross-tool AI consultation',
|
|
222
218
|
'debate': 'Structured debate between AI tools',
|
|
223
|
-
'web-ctl': 'Browser automation for AI agents',
|
|
224
219
|
'release': 'Versioned release with ecosystem detection',
|
|
225
220
|
'skillers': 'Workflow pattern learning and automation',
|
|
226
221
|
'skill-curator': 'Create and improve reliable SKILL.md files',
|
|
@@ -284,7 +279,7 @@ function generateSkillsTable(skills) {
|
|
|
284
279
|
const categoryOrder = [
|
|
285
280
|
'Workflow', 'Message Queues', 'Enhancement', 'Performance', 'Cleanup',
|
|
286
281
|
'Code Review', 'AI Collaboration', 'Onboarding',
|
|
287
|
-
'Web', 'Release', 'Analysis', 'Memory', 'Linting', 'Other'
|
|
282
|
+
'Web', 'Release', 'Analysis', 'Memory', 'Linting', 'Languages', 'Other'
|
|
288
283
|
];
|
|
289
284
|
|
|
290
285
|
const lines = [
|
|
@@ -445,21 +440,21 @@ const STATIC_PLUGIN_AGENT_COUNTS = {
|
|
|
445
440
|
'drift-detect': 1,
|
|
446
441
|
'enhance': 8,
|
|
447
442
|
'sync-docs': 1,
|
|
448
|
-
'repo-intel':
|
|
449
|
-
'axiom': 0,
|
|
443
|
+
'repo-intel': 3,
|
|
450
444
|
'banthis': 0,
|
|
451
445
|
'perf': 6,
|
|
452
446
|
'learn': 1,
|
|
453
|
-
'agnix':
|
|
447
|
+
'agnix': 0,
|
|
454
448
|
'consult': 1,
|
|
455
449
|
'debate': 1,
|
|
456
|
-
'web-ctl': 1,
|
|
457
450
|
'skill-curator': 0,
|
|
458
451
|
'system-prompt-curator': 0,
|
|
459
452
|
'skillers': 2,
|
|
460
453
|
'onboard': 1,
|
|
461
454
|
'can-i-help': 1,
|
|
462
|
-
'zig-lsp': 0
|
|
455
|
+
'zig-lsp': 0,
|
|
456
|
+
'mojo': 0,
|
|
457
|
+
'ada-spark': 0
|
|
463
458
|
};
|
|
464
459
|
const STATIC_PLUGIN_COUNT = Object.keys(STATIC_PLUGIN_AGENT_COUNTS).length;
|
|
465
460
|
const STATIC_FILE_BASED_AGENT_COUNT = Object.values(STATIC_PLUGIN_AGENT_COUNTS).reduce((sum, count) => sum + count, 0);
|
package/scripts/plugins.txt
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
ada-spark
|
|
1
2
|
agnix
|
|
2
|
-
axiom
|
|
3
3
|
audit-project
|
|
4
4
|
banthis
|
|
5
5
|
can-i-help
|
|
@@ -10,6 +10,7 @@ drift-detect
|
|
|
10
10
|
enhance
|
|
11
11
|
gate-and-ship
|
|
12
12
|
learn
|
|
13
|
+
mojo
|
|
13
14
|
next-task
|
|
14
15
|
onboard
|
|
15
16
|
perf
|
|
@@ -20,5 +21,4 @@ skill-curator
|
|
|
20
21
|
skillers
|
|
21
22
|
sync-docs
|
|
22
23
|
system-prompt-curator
|
|
23
|
-
web-ctl
|
|
24
24
|
zig-lsp
|
package/site/assets/js/main.js
CHANGED
|
@@ -676,14 +676,6 @@
|
|
|
676
676
|
]
|
|
677
677
|
},
|
|
678
678
|
13: {
|
|
679
|
-
subtitle: 'Browser automation. Encrypted sessions.',
|
|
680
|
-
steps: [
|
|
681
|
-
{ title: 'Start session', desc: 'Creates an encrypted browser profile using AES-256-GCM. No daemon - each action is a single Playwright process.' },
|
|
682
|
-
{ title: 'Authenticate', desc: 'Opens headed Chrome for human login (2FA, CAPTCHAs). Polls for success, then encrypts cookies for reuse.' },
|
|
683
|
-
{ title: 'Run headless', desc: 'Subsequent actions run headless using saved cookies. Snapshot-based element discovery with classified error codes.' }
|
|
684
|
-
]
|
|
685
|
-
},
|
|
686
|
-
14: {
|
|
687
679
|
subtitle: 'Five quality gates. Zero shortcuts.',
|
|
688
680
|
steps: [
|
|
689
681
|
{ title: 'Clean and lint', desc: 'Deslop + simplify + test-coverage run in parallel. Then agnix and /enhance lint any changed agent configs.' },
|
|
@@ -691,7 +683,7 @@
|
|
|
691
683
|
{ title: 'Sync docs and ship', desc: 'Documentation synced with code changes. Ready for /ship or /gate-and-ship to create the PR.' }
|
|
692
684
|
]
|
|
693
685
|
},
|
|
694
|
-
|
|
686
|
+
14: {
|
|
695
687
|
subtitle: 'Quality gates then ship. One command.',
|
|
696
688
|
steps: [
|
|
697
689
|
{ title: 'Run /prepare-delivery', desc: 'All five quality gates: deslop, config lint, review loop, delivery validation, and docs sync.' },
|
|
@@ -699,7 +691,7 @@
|
|
|
699
691
|
{ title: 'Done', desc: 'From code-complete to merged PR. If gates fail, ship does not run. Each piece also runs independently.' }
|
|
700
692
|
]
|
|
701
693
|
},
|
|
702
|
-
|
|
694
|
+
15: {
|
|
703
695
|
subtitle: 'Detect ecosystem. Tag. Publish.',
|
|
704
696
|
steps: [
|
|
705
697
|
{ title: 'Discover release method', desc: 'Finds your release tool: semantic-release, release-it, goreleaser, cargo-release, or manual npm/cargo/go publish.' },
|
|
@@ -707,7 +699,7 @@
|
|
|
707
699
|
{ title: 'Tag and publish', desc: 'Creates git tag, publishes to registry (npm, crates.io, PyPI, etc.), creates GitHub release with notes.' }
|
|
708
700
|
]
|
|
709
701
|
},
|
|
710
|
-
|
|
702
|
+
16: {
|
|
711
703
|
subtitle: 'Transcripts in. Automation suggestions out.',
|
|
712
704
|
steps: [
|
|
713
705
|
{ title: 'Read transcripts', desc: 'Reads saved sessions from Claude Code, Codex, and OpenCode. No hooks, no per-turn overhead.' },
|
|
@@ -715,7 +707,7 @@
|
|
|
715
707
|
{ title: 'Suggest automation', desc: 'Recommends skills, hooks, and agents that would automate the patterns found. Checks existing ecosystem first.' }
|
|
716
708
|
]
|
|
717
709
|
},
|
|
718
|
-
|
|
710
|
+
17: {
|
|
719
711
|
subtitle: 'Automated data collection. Interactive tour.',
|
|
720
712
|
steps: [
|
|
721
713
|
{ title: 'Collect project data', desc: 'Scans package.json, git history, directory structure, key files, and conventions automatically.' },
|
|
@@ -723,7 +715,7 @@
|
|
|
723
715
|
{ title: 'Interactive Q&A', desc: 'Answers questions about the codebase interactively. Identifies key files, conventions, and gotchas.' }
|
|
724
716
|
]
|
|
725
717
|
},
|
|
726
|
-
|
|
718
|
+
18: {
|
|
727
719
|
subtitle: 'Match skills to project needs.',
|
|
728
720
|
steps: [
|
|
729
721
|
{ title: 'Analyze project', desc: 'Uses repo-intel to find test gaps, stale docs, open issues, bugspots, and areas with low bus factor.' },
|
package/site/content.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
3
|
"title": "agentsys",
|
|
4
|
-
"description": "A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents,
|
|
4
|
+
"description": "A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents, 44 skills - structured pipelines for Claude Code, OpenCode, Codex CLI, Cursor, and Kiro.",
|
|
5
5
|
"url": "https://agent-sh.github.io/agentsys",
|
|
6
6
|
"repo": "https://github.com/agent-sh/agentsys",
|
|
7
7
|
"npm": "https://www.npmjs.com/package/agentsys",
|
|
8
|
-
"version": "
|
|
8
|
+
"version": "6.0.0",
|
|
9
9
|
"author": "Avi Fenesh",
|
|
10
10
|
"author_url": "https://github.com/avifenesh"
|
|
11
11
|
},
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"suffix": ""
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
|
-
"value": "
|
|
36
|
+
"value": "44",
|
|
37
37
|
"label": "Skills",
|
|
38
38
|
"suffix": ""
|
|
39
39
|
},
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"suffix": ""
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
"value": "3,
|
|
46
|
+
"value": "3,518",
|
|
47
47
|
"label": "Tests",
|
|
48
48
|
"suffix": ""
|
|
49
49
|
},
|
|
@@ -109,13 +109,6 @@
|
|
|
109
109
|
"example": "/gate-and-ship",
|
|
110
110
|
"category": "workflow"
|
|
111
111
|
},
|
|
112
|
-
{
|
|
113
|
-
"name": "/axiom",
|
|
114
|
-
"tagline": "Durable memory for agents",
|
|
115
|
-
"description": "Load thin context, query project or global knowledge, create missing project scaffolds, and propose human-approved records in a private axiom-based knowledge repo.",
|
|
116
|
-
"example": "/axiom before-any --project flowfabric",
|
|
117
|
-
"category": "workflow"
|
|
118
|
-
},
|
|
119
112
|
{
|
|
120
113
|
"name": "/banthis",
|
|
121
114
|
"tagline": "Durable negative memory",
|
|
@@ -126,7 +119,7 @@
|
|
|
126
119
|
{
|
|
127
120
|
"name": "/agnix",
|
|
128
121
|
"tagline": "Lint agent configs before they break",
|
|
129
|
-
"description": "
|
|
122
|
+
"description": "423 validation rules (129 auto-fixable) for Skills, Memory, Hooks, MCP, and Plugins across 10+ AI tools including Claude Code, Cursor, GitHub Copilot, Codex CLI, OpenCode, Gemini CLI, Cline, Windsurf, Roo Code, and Amp. SARIF output for GitHub Code Scanning.",
|
|
130
123
|
"example": "/agnix --fix",
|
|
131
124
|
"category": "linting"
|
|
132
125
|
},
|
|
@@ -207,13 +200,6 @@
|
|
|
207
200
|
"example": "/debate claude vs kiro about microservices vs monolith",
|
|
208
201
|
"category": "analysis"
|
|
209
202
|
},
|
|
210
|
-
{
|
|
211
|
-
"name": "/web-ctl",
|
|
212
|
-
"tagline": "Browser automation for AI agents",
|
|
213
|
-
"description": "Navigate, authenticate, and interact with web pages via headless Playwright. Persistent encrypted sessions, human-in-the-loop auth handoff with CAPTCHA detection, and anti-bot measures.",
|
|
214
|
-
"example": "/web-ctl browse https://example.com",
|
|
215
|
-
"category": "maintenance"
|
|
216
|
-
},
|
|
217
203
|
{
|
|
218
204
|
"name": "/release",
|
|
219
205
|
"tagline": "Versioned release with ecosystem detection",
|
|
@@ -445,7 +431,6 @@
|
|
|
445
431
|
"sync-docs-agent",
|
|
446
432
|
"agnix-agent",
|
|
447
433
|
"consult-agent",
|
|
448
|
-
"web-session",
|
|
449
434
|
"skillers-compactor",
|
|
450
435
|
"release-agent",
|
|
451
436
|
"onboard-agent",
|
|
@@ -497,8 +482,6 @@
|
|
|
497
482
|
"version": "5.0.0",
|
|
498
483
|
"date": "2026-02-20",
|
|
499
484
|
"highlights": [
|
|
500
|
-
"New /web-ctl plugin - browser automation with encrypted session persistence",
|
|
501
|
-
"Human-in-the-loop auth handoff with CAPTCHA detection",
|
|
502
485
|
"Multi-platform support: Claude Code, OpenCode, Codex CLI"
|
|
503
486
|
]
|
|
504
487
|
}
|
|
@@ -559,7 +542,7 @@
|
|
|
559
542
|
],
|
|
560
543
|
"research": {
|
|
561
544
|
"knowledge_base": "8,000 lines of curated documentation from Anthropic, OpenAI, Google, and Microsoft",
|
|
562
|
-
"testing": "3,
|
|
545
|
+
"testing": "3,518 tests passing",
|
|
563
546
|
"drift_detect_repos": "1,000+ repositories validated",
|
|
564
547
|
"token_reduction": "77% fewer tokens for drift-detect vs multi-agent approaches"
|
|
565
548
|
},
|
package/site/index.html
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
6
|
<title>AgentSys - Agent Runtime & Orchestration System</title>
|
|
7
|
-
<meta name="description" content="A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents,
|
|
7
|
+
<meta name="description" content="A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents, 44 skills - structured pipelines for Claude Code, OpenCode, Codex CLI, Cursor, and Kiro.">
|
|
8
8
|
<meta name="theme-color" content="#09090b">
|
|
9
9
|
|
|
10
10
|
<!-- Open Graph -->
|
|
11
11
|
<meta property="og:title" content="AgentSys">
|
|
12
|
-
<meta property="og:description" content="A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents,
|
|
12
|
+
<meta property="og:description" content="A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents, 44 skills.">
|
|
13
13
|
<meta property="og:image" content="https://agent-sh.github.io/agentsys/assets/logo.png">
|
|
14
14
|
<meta property="og:url" content="https://agent-sh.github.io/agentsys/">
|
|
15
15
|
<meta property="og:type" content="website">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<!-- Twitter Card -->
|
|
18
18
|
<meta name="twitter:card" content="summary_large_image">
|
|
19
19
|
<meta name="twitter:title" content="AgentSys">
|
|
20
|
-
<meta name="twitter:description" content="AI workflow automation. 24 plugins, 49 agents,
|
|
20
|
+
<meta name="twitter:description" content="AI workflow automation. 24 plugins, 49 agents, 44 skills.">
|
|
21
21
|
<meta name="twitter:image" content="https://agent-sh.github.io/agentsys/assets/logo.png">
|
|
22
22
|
|
|
23
23
|
<!-- Content Security Policy -->
|
|
@@ -107,14 +107,14 @@
|
|
|
107
107
|
<div class="hero__inner">
|
|
108
108
|
<div class="hero__content">
|
|
109
109
|
<div class="hero__badge anim-fade-in" data-delay="100">
|
|
110
|
-
24 plugins · 49 agents ·
|
|
110
|
+
24 plugins · 49 agents · 44 skills
|
|
111
111
|
</div>
|
|
112
112
|
<h1 class="hero__title anim-fade-up" id="hero-title" data-delay="200">
|
|
113
113
|
A modular <span class="text-gradient">runtime and orchestration system</span><br>
|
|
114
114
|
for AI agents.
|
|
115
115
|
</h1>
|
|
116
116
|
<p class="hero__subtitle anim-fade-up" data-delay="350">
|
|
117
|
-
Structured pipelines, gated phases, specialized agents. Works with Claude Code, OpenCode, Codex CLI, Cursor, and Kiro. 3,
|
|
117
|
+
Structured pipelines, gated phases, specialized agents. Works with Claude Code, OpenCode, Codex CLI, Cursor, and Kiro. 3,518 tests. Production-grade.
|
|
118
118
|
</p>
|
|
119
119
|
<div class="hero__ctas anim-fade-up" data-delay="500">
|
|
120
120
|
<a href="#install" class="btn btn--primary">Get Started</a>
|
|
@@ -164,11 +164,11 @@
|
|
|
164
164
|
<span class="stats__label">Agents</span>
|
|
165
165
|
</div>
|
|
166
166
|
<div class="stats__item">
|
|
167
|
-
<span class="stats__number" aria-live="polite" data-target="
|
|
167
|
+
<span class="stats__number" aria-live="polite" data-target="44">0</span>
|
|
168
168
|
<span class="stats__label">Skills</span>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="stats__item">
|
|
171
|
-
<span class="stats__number" aria-live="polite" data-target="
|
|
171
|
+
<span class="stats__number" aria-live="polite" data-target="3518">0</span>
|
|
172
172
|
<span class="stats__label">Tests Passing</span>
|
|
173
173
|
</div>
|
|
174
174
|
</div>
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
<!-- ===== COMMANDS ===== -->
|
|
178
178
|
<section class="commands" id="commands" aria-labelledby="commands-title">
|
|
179
179
|
<div class="commands__inner">
|
|
180
|
-
<h2 class="commands__title anim-fade-up" id="commands-title">
|
|
180
|
+
<h2 class="commands__title anim-fade-up" id="commands-title">22 Commands. One Toolkit.</h2>
|
|
181
181
|
<p class="commands__subtitle anim-fade-up" data-delay="100">Each works standalone. Together, they automate everything.</p>
|
|
182
182
|
|
|
183
183
|
<div class="commands__tabs anim-fade-up" data-delay="200">
|
|
@@ -195,17 +195,15 @@
|
|
|
195
195
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-10" id="tab-10" tabindex="-1" data-index="10">/learn</button>
|
|
196
196
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-11" id="tab-11" tabindex="-1" data-index="11">/consult</button>
|
|
197
197
|
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-12" id="tab-12" tabindex="-1" data-index="12">/debate</button>
|
|
198
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-13" id="tab-13" tabindex="-1" data-index="13">/
|
|
199
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-14" id="tab-14" tabindex="-1" data-index="14">/
|
|
200
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-15" id="tab-15" tabindex="-1" data-index="15">/
|
|
201
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-16" id="tab-16" tabindex="-1" data-index="16">/
|
|
202
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-17" id="tab-17" tabindex="-1" data-index="17">/
|
|
203
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-18" id="tab-18" tabindex="-1" data-index="18">/
|
|
204
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-19" id="tab-19" tabindex="-1" data-index="19">/
|
|
205
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-20" id="tab-20" tabindex="-1" data-index="20">/
|
|
206
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-21" id="tab-21" tabindex="-1" data-index="21">/
|
|
207
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-22" id="tab-22" tabindex="-1" data-index="22">/skill-curator</button>
|
|
208
|
-
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-23" id="tab-23" tabindex="-1" data-index="23">/system-prompt-curator</button>
|
|
198
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-13" id="tab-13" tabindex="-1" data-index="13">/prepare-delivery</button>
|
|
199
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-14" id="tab-14" tabindex="-1" data-index="14">/gate-and-ship</button>
|
|
200
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-15" id="tab-15" tabindex="-1" data-index="15">/release</button>
|
|
201
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-16" id="tab-16" tabindex="-1" data-index="16">/skillers</button>
|
|
202
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-17" id="tab-17" tabindex="-1" data-index="17">/onboard</button>
|
|
203
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-18" id="tab-18" tabindex="-1" data-index="18">/can-i-help</button>
|
|
204
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-19" id="tab-19" tabindex="-1" data-index="19">/banthis</button>
|
|
205
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-20" id="tab-20" tabindex="-1" data-index="20">/skill-curator</button>
|
|
206
|
+
<button class="tabs__tab" role="tab" aria-selected="false" aria-controls="tab-panel-21" id="tab-21" tabindex="-1" data-index="21">/system-prompt-curator</button>
|
|
209
207
|
</div>
|
|
210
208
|
|
|
211
209
|
<!-- Tab panels -->
|
|
@@ -232,9 +230,9 @@
|
|
|
232
230
|
<h3 class="tabs__panel-name">/agnix</h3>
|
|
233
231
|
<p class="tabs__panel-tagline">Lint agent configs before they break</p>
|
|
234
232
|
<ul class="tabs__panel-features">
|
|
235
|
-
<li>
|
|
233
|
+
<li>423 validation rules across 36 categories</li>
|
|
236
234
|
<li>10+ AI tools: Claude Code, Cursor, Copilot, Codex, OpenCode, Gemini CLI</li>
|
|
237
|
-
<li>
|
|
235
|
+
<li>129 auto-fixable rules with --fix flag</li>
|
|
238
236
|
<li>SARIF output for GitHub Code Scanning</li>
|
|
239
237
|
</ul>
|
|
240
238
|
<div class="code-block">
|
|
@@ -457,25 +455,6 @@
|
|
|
457
455
|
</div>
|
|
458
456
|
|
|
459
457
|
<div class="tabs__panel" role="tabpanel" id="tab-panel-13" aria-labelledby="tab-13" hidden>
|
|
460
|
-
<h3 class="tabs__panel-name">/web-ctl</h3>
|
|
461
|
-
<p class="tabs__panel-tagline">Browser automation for AI agents</p>
|
|
462
|
-
<ul class="tabs__panel-features">
|
|
463
|
-
<li>Headless Playwright with encrypted session persistence</li>
|
|
464
|
-
<li>Human-in-the-loop auth handoff with CAPTCHA detection</li>
|
|
465
|
-
<li>Anti-bot measures and output sanitization</li>
|
|
466
|
-
<li>Snapshot-based accessibility tree for element discovery</li>
|
|
467
|
-
</ul>
|
|
468
|
-
<div class="code-block">
|
|
469
|
-
<button class="code-block__copy" aria-label="Copy code to clipboard" data-code="/web-ctl goto https://example.com
|
|
470
|
-
/web-ctl auth github --url https://github.com/login">
|
|
471
|
-
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"/><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"/></svg>
|
|
472
|
-
</button>
|
|
473
|
-
<pre><code><span class="code-prompt">$</span> /web-ctl goto https://example.com <span class="code-comment"># Navigate</span>
|
|
474
|
-
<span class="code-prompt">$</span> /web-ctl auth github --url https://github.com/login <span class="code-comment"># Auth handoff</span></code></pre>
|
|
475
|
-
</div>
|
|
476
|
-
</div>
|
|
477
|
-
|
|
478
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-14" aria-labelledby="tab-14" hidden>
|
|
479
458
|
<h3 class="tabs__panel-name">/prepare-delivery</h3>
|
|
480
459
|
<p class="tabs__panel-tagline">Pre-ship quality gates</p>
|
|
481
460
|
<ul class="tabs__panel-features">
|
|
@@ -494,7 +473,7 @@
|
|
|
494
473
|
</div>
|
|
495
474
|
</div>
|
|
496
475
|
|
|
497
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
476
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-14" aria-labelledby="tab-14" hidden>
|
|
498
477
|
<h3 class="tabs__panel-name">/gate-and-ship</h3>
|
|
499
478
|
<p class="tabs__panel-tagline">Quality gates then ship</p>
|
|
500
479
|
<ul class="tabs__panel-features">
|
|
@@ -513,7 +492,7 @@
|
|
|
513
492
|
</div>
|
|
514
493
|
</div>
|
|
515
494
|
|
|
516
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
495
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-15" aria-labelledby="tab-15" hidden>
|
|
517
496
|
<h3 class="tabs__panel-name">/release</h3>
|
|
518
497
|
<p class="tabs__panel-tagline">Versioned release with ecosystem detection</p>
|
|
519
498
|
<ul class="tabs__panel-features">
|
|
@@ -532,7 +511,7 @@
|
|
|
532
511
|
</div>
|
|
533
512
|
</div>
|
|
534
513
|
|
|
535
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
514
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-16" aria-labelledby="tab-16" hidden>
|
|
536
515
|
<h3 class="tabs__panel-name">/skillers</h3>
|
|
537
516
|
<p class="tabs__panel-tagline">Learn from your workflow patterns</p>
|
|
538
517
|
<ul class="tabs__panel-features">
|
|
@@ -551,7 +530,7 @@
|
|
|
551
530
|
</div>
|
|
552
531
|
</div>
|
|
553
532
|
|
|
554
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
533
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-17" aria-labelledby="tab-17" hidden>
|
|
555
534
|
<h3 class="tabs__panel-name">/onboard</h3>
|
|
556
535
|
<p class="tabs__panel-tagline">Codebase orientation for newcomers</p>
|
|
557
536
|
<ul class="tabs__panel-features">
|
|
@@ -570,7 +549,7 @@
|
|
|
570
549
|
</div>
|
|
571
550
|
</div>
|
|
572
551
|
|
|
573
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
552
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-18" aria-labelledby="tab-18" hidden>
|
|
574
553
|
<h3 class="tabs__panel-name">/can-i-help</h3>
|
|
575
554
|
<p class="tabs__panel-tagline">Find where to contribute</p>
|
|
576
555
|
<ul class="tabs__panel-features">
|
|
@@ -589,26 +568,7 @@
|
|
|
589
568
|
</div>
|
|
590
569
|
</div>
|
|
591
570
|
|
|
592
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
593
|
-
<h3 class="tabs__panel-name">/axiom</h3>
|
|
594
|
-
<p class="tabs__panel-tagline">Durable memory for agents</p>
|
|
595
|
-
<ul class="tabs__panel-features">
|
|
596
|
-
<li>Loads thin global and project context</li>
|
|
597
|
-
<li>Queries durable decisions, memories, and preferences</li>
|
|
598
|
-
<li>Creates missing project scaffolds automatically</li>
|
|
599
|
-
<li>Records only through a diff and human approval</li>
|
|
600
|
-
</ul>
|
|
601
|
-
<div class="code-block">
|
|
602
|
-
<button class="code-block__copy" aria-label="Copy code to clipboard" data-code="/axiom before-any --project flowfabric
|
|
603
|
-
/axiom query "lease based" --project flowfabric">
|
|
604
|
-
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"/><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"/></svg>
|
|
605
|
-
</button>
|
|
606
|
-
<pre><code><span class="code-prompt">$</span> /axiom before-any --project flowfabric
|
|
607
|
-
<span class="code-prompt">$</span> /axiom query "lease based" --project flowfabric</code></pre>
|
|
608
|
-
</div>
|
|
609
|
-
</div>
|
|
610
|
-
|
|
611
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-21" aria-labelledby="tab-21" hidden>
|
|
571
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-19" aria-labelledby="tab-19" hidden>
|
|
612
572
|
<h3 class="tabs__panel-name">/banthis</h3>
|
|
613
573
|
<p class="tabs__panel-tagline">Durable negative memory</p>
|
|
614
574
|
<ul class="tabs__panel-features">
|
|
@@ -627,7 +587,7 @@ banthis list">
|
|
|
627
587
|
</div>
|
|
628
588
|
</div>
|
|
629
589
|
|
|
630
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
590
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-20" aria-labelledby="tab-20" hidden>
|
|
631
591
|
<h3 class="tabs__panel-name">/skill-curator</h3>
|
|
632
592
|
<p class="tabs__panel-tagline">Design reliable SKILL.md files</p>
|
|
633
593
|
<ul class="tabs__panel-features">
|
|
@@ -646,7 +606,7 @@ banthis list">
|
|
|
646
606
|
</div>
|
|
647
607
|
</div>
|
|
648
608
|
|
|
649
|
-
<div class="tabs__panel" role="tabpanel" id="tab-panel-
|
|
609
|
+
<div class="tabs__panel" role="tabpanel" id="tab-panel-21" aria-labelledby="tab-21" hidden>
|
|
650
610
|
<h3 class="tabs__panel-name">/system-prompt-curator</h3>
|
|
651
611
|
<p class="tabs__panel-tagline">Design autonomous agent prompts</p>
|
|
652
612
|
<ul class="tabs__panel-features">
|
|
@@ -742,7 +702,7 @@ banthis list">
|
|
|
742
702
|
<!-- ===== AGENTS & SKILLS ===== -->
|
|
743
703
|
<section class="agents-skills" id="agents-skills" aria-labelledby="as-title">
|
|
744
704
|
<div class="agents-skills__inner">
|
|
745
|
-
<h2 class="agents-skills__title anim-fade-up" id="as-title">49 Agents.
|
|
705
|
+
<h2 class="agents-skills__title anim-fade-up" id="as-title">49 Agents. 44 Skills.</h2>
|
|
746
706
|
<p class="agents-skills__subtitle anim-fade-up" data-delay="100">Right model for the task. Opus reasons. Sonnet validates. Haiku executes.</p>
|
|
747
707
|
|
|
748
708
|
<!-- Agent tier tabs -->
|
|
@@ -829,7 +789,7 @@ banthis list">
|
|
|
829
789
|
</div>
|
|
830
790
|
|
|
831
791
|
<!-- Skills grid -->
|
|
832
|
-
<h3 class="agents-skills__skills-title anim-fade-up" data-delay="300">
|
|
792
|
+
<h3 class="agents-skills__skills-title anim-fade-up" data-delay="300">44 Skills across 24 Plugins</h3>
|
|
833
793
|
<div class="skills-grid anim-fade-up" data-delay="350">
|
|
834
794
|
<div class="skill-group">
|
|
835
795
|
<span class="skill-group__label">prepare-delivery</span>
|
|
@@ -873,13 +833,6 @@ banthis list">
|
|
|
873
833
|
<span class="skill-card">discover-tasks</span>
|
|
874
834
|
</div>
|
|
875
835
|
</div>
|
|
876
|
-
<div class="skill-group">
|
|
877
|
-
<span class="skill-group__label">web-ctl</span>
|
|
878
|
-
<div class="skill-group__items">
|
|
879
|
-
<span class="skill-card">web-auth</span>
|
|
880
|
-
<span class="skill-card">web-browse</span>
|
|
881
|
-
</div>
|
|
882
|
-
</div>
|
|
883
836
|
<div class="skill-group">
|
|
884
837
|
<span class="skill-group__label">skillers</span>
|
|
885
838
|
<div class="skill-group__items">
|
|
@@ -895,7 +848,6 @@ banthis list">
|
|
|
895
848
|
<span class="skill-card">repo-intel</span>
|
|
896
849
|
<span class="skill-card">sync-docs</span>
|
|
897
850
|
<span class="skill-card">learn</span>
|
|
898
|
-
<span class="skill-card">axiom</span>
|
|
899
851
|
<span class="skill-card">banthis</span>
|
|
900
852
|
<span class="skill-card">consult</span>
|
|
901
853
|
<span class="skill-card">debate</span>
|
package/site/ux-spec.md
CHANGED
|
@@ -94,7 +94,7 @@ Scroll order with rationale for each section. All sections are full-width, alter
|
|
|
94
94
|
- **Single column on mobile:** Text above, terminal below. Stack with 48px gap.
|
|
95
95
|
|
|
96
96
|
### Left Column Content
|
|
97
|
-
1. **Badge** (top, above title): Small pill showing version or "24 plugins . 49 agents .
|
|
97
|
+
1. **Badge** (top, above title): Small pill showing version or "24 plugins . 49 agents . 44 skills"
|
|
98
98
|
- Background: `rgba(99, 102, 241, 0.12)`, border: `1px solid rgba(99, 102, 241, 0.25)`, border-radius: 9999px
|
|
99
99
|
- Font: 13px, font-weight 500, primary accent color
|
|
100
100
|
- Padding: 4px 14px
|
|
@@ -104,7 +104,7 @@ Scroll order with rationale for each section. All sections are full-width, alter
|
|
|
104
104
|
- Color: white
|
|
105
105
|
- "entire dev workflow" portion highlighted with a subtle gradient text (primary-to-secondary accent via `background-clip: text`)
|
|
106
106
|
|
|
107
|
-
3. **Subtitle:** "24 plugins, 49 agents,
|
|
107
|
+
3. **Subtitle:** "24 plugins, 49 agents, 44 skills. From task selection to merged PR. Works with Claude Code, OpenCode, Codex CLI, Cursor, and Kiro."
|
|
108
108
|
- Font: 18px on desktop, 16px on mobile, font-weight 400, line-height 1.6
|
|
109
109
|
- Color: `rgba(255, 255, 255, 0.6)`
|
|
110
110
|
- Max-width: 520px
|
|
@@ -229,7 +229,7 @@ Done. Task to merged PR in 12 minutes.
|
|
|
229
229
|
| 1 | 20 | Plugins |
|
|
230
230
|
| 2 | 49 | Agents |
|
|
231
231
|
| 3 | 41 | Skills |
|
|
232
|
-
| 4 | 3,
|
|
232
|
+
| 4 | 3,518 | Tests Passing |
|
|
233
233
|
|
|
234
234
|
### Styling
|
|
235
235
|
- **Number:** 48px, font-weight 700, white, `font-variant-numeric: tabular-nums` (prevents layout shift during count)
|
|
@@ -265,7 +265,7 @@ Done. Task to merged PR in 12 minutes.
|
|
|
265
265
|
- On mobile: naturally scrollable, slight gradient fade on right edge to indicate scrollability (20px gradient from transparent to section background)
|
|
266
266
|
|
|
267
267
|
### Tab Order
|
|
268
|
-
`/next-task`, `/ship`, `/deslop`, `/perf`, `/drift-detect`, `/audit-project`, `/enhance`, `/repo-intel`, `/sync-docs`, `/
|
|
268
|
+
`/next-task`, `/ship`, `/deslop`, `/perf`, `/drift-detect`, `/audit-project`, `/enhance`, `/repo-intel`, `/sync-docs`, `/learn`, `/agnix`
|
|
269
269
|
|
|
270
270
|
(Most impactful first: the full workflow command, then the shipper, then individual tools)
|
|
271
271
|
|
|
@@ -650,13 +650,13 @@ This disables:
|
|
|
650
650
|
### Head Content
|
|
651
651
|
```html
|
|
652
652
|
<title>AgentSys - Agent Runtime & Orchestration System</title>
|
|
653
|
-
<meta name="description" content="A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents,
|
|
653
|
+
<meta name="description" content="A modular runtime and orchestration system for AI agents. 24 plugins, 49 agents, 44 skills - structured pipelines for Claude Code, OpenCode, Codex CLI, Cursor, and Kiro.">
|
|
654
654
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
655
655
|
<meta name="theme-color" content="#0a0a0f">
|
|
656
656
|
|
|
657
657
|
<!-- Open Graph -->
|
|
658
658
|
<meta property="og:title" content="AgentSys">
|
|
659
|
-
<meta property="og:description" content="AI workflow automation. 24 plugins, 49 agents,
|
|
659
|
+
<meta property="og:description" content="AI workflow automation. 24 plugins, 49 agents, 44 skills. Task to merged PR.">
|
|
660
660
|
<meta property="og:image" content="https://agent-sh.github.io/agentsys/assets/og-image.png">
|
|
661
661
|
<meta property="og:url" content="https://agent-sh.github.io/agentsys/">
|
|
662
662
|
<meta property="og:type" content="website">
|
|
@@ -664,7 +664,7 @@ This disables:
|
|
|
664
664
|
<!-- Twitter Card -->
|
|
665
665
|
<meta name="twitter:card" content="summary_large_image">
|
|
666
666
|
<meta name="twitter:title" content="AgentSys">
|
|
667
|
-
<meta name="twitter:description" content="AI workflow automation. 24 plugins, 49 agents,
|
|
667
|
+
<meta name="twitter:description" content="AI workflow automation. 24 plugins, 49 agents, 44 skills.">
|
|
668
668
|
<meta name="twitter:image" content="https://agent-sh.github.io/agentsys/assets/og-image.png">
|
|
669
669
|
```
|
|
670
670
|
|