@aksp/opencrew 1.0.0 → 1.0.1
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/CHANGELOG.md +9 -0
- package/README.md +86 -70
- package/package.json +1 -1
- package/src/commands/init.js +2 -2
- package/templates/_opencrew/.opencrew-version +1 -1
- package/templates/_opencrew/core/skills.engine.md +28 -12
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
All notable changes to opencrew are documented here.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
5
5
|
|
|
6
|
+
## [1.0.1] — 2026-08-01
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
- API keys for optional skills are now requested conversationally in chat (during crew
|
|
10
|
+
creation or skill install) instead of requiring the user to manually copy/edit `.env`
|
|
11
|
+
beforehand. Values are collected and written to `.env` automatically.
|
|
12
|
+
- `init` no longer tells users to configure `.env` as a next step — no setup is required
|
|
13
|
+
to start using opencrew.
|
|
14
|
+
|
|
6
15
|
## [1.0.0] — 2026-08-01
|
|
7
16
|
|
|
8
17
|
### Added
|
package/README.md
CHANGED
|
@@ -1,61 +1,75 @@
|
|
|
1
1
|
# opencrew
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Crie equipes de agentes de IA que trabalham juntos — direto na sua IDE.**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
OpenCode, Antigravity and more.
|
|
5
|
+
> 🇧🇷 This README is in Brazilian Portuguese (PT-BR), the project's primary audience. If
|
|
6
|
+
> you don't read Portuguese, use your browser's translator (e.g. Google Translate) or ask
|
|
7
|
+
> an AI assistant to translate this page.
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
opencrew é um framework de orquestração multi-agente. Descreva o que você precisa em
|
|
10
|
+
linguagem natural e ele monta um time de agentes especializados que rodam como um pipeline
|
|
11
|
+
automatizado, com pontos de aprovação humana. Funciona no Claude Code, Cursor, Codex,
|
|
12
|
+
Gemini CLI, OpenCode, Antigravity e mais.
|
|
13
|
+
|
|
14
|
+
> **Este não é um framework original — é a minha versão pessoal do OpenSquad.**
|
|
15
|
+
> O [OpenSquad](https://github.com/renatoasse/opensquad) foi criado por
|
|
12
16
|
> [Renato Asse](https://github.com/renatoasse) ([Comunidade Sem Codar](https://semcodar.com.br)).
|
|
13
|
-
>
|
|
14
|
-
>
|
|
15
|
-
>
|
|
16
|
-
>
|
|
17
|
+
> Eu ([aksp](https://www.npmjs.com/~aksp)) uso o OpenSquad no dia a dia e quis melhorar
|
|
18
|
+
> algumas coisas para o meu próprio fluxo de trabalho — o `opencrew` é essa versão
|
|
19
|
+
> reformulada, compartilhada caso ajude outras pessoas também. Todo o crédito pela ideia e
|
|
20
|
+
> pelo framework original é do Renato Asse. Veja [Origem e créditos](#origem-e-créditos)
|
|
21
|
+
> abaixo. Licenciado sob MIT, assim como o original.
|
|
17
22
|
|
|
18
23
|
---
|
|
19
24
|
|
|
20
|
-
##
|
|
25
|
+
## Instalação
|
|
21
26
|
|
|
22
|
-
**
|
|
27
|
+
**Pré-requisito:** Node.js 20+
|
|
23
28
|
|
|
24
29
|
```bash
|
|
25
30
|
npx @aksp/opencrew init
|
|
26
31
|
```
|
|
27
32
|
|
|
28
|
-
`init`
|
|
29
|
-
|
|
33
|
+
O `init` monta o workspace na pasta atual e pergunta quais IDEs de IA você usa, gerando os
|
|
34
|
+
arquivos de integração certos para cada uma. Depois:
|
|
35
|
+
|
|
36
|
+
1. Abra a pasta na sua IDE de IA.
|
|
37
|
+
2. Digite `/opencrew` para começar — a primeira execução configura o perfil da sua empresa.
|
|
38
|
+
|
|
39
|
+
Isso já é suficiente para criar e rodar crews: nenhuma configuração prévia, instalação
|
|
40
|
+
extra ou chave de API é necessária para começar.
|
|
30
41
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
Algumas **skills opcionais** dependem de serviços externos — por exemplo, publicar no
|
|
43
|
+
Instagram, gerar imagens com IA, fazer web scraping (Apify) ou enviar e-mails (Resend). Você
|
|
44
|
+
não precisa se preocupar com isso antes de começar: se, ao montar uma crew, o opencrew
|
|
45
|
+
identificar que ela precisa de uma dessas skills, ele pede a chave direto na conversa
|
|
46
|
+
(explicando o que é e onde consegui-la) e salva tudo por conta própria. Não é preciso abrir
|
|
47
|
+
nem editar nenhum arquivo manualmente.
|
|
34
48
|
|
|
35
|
-
|
|
49
|
+
Você pode pré-selecionar as IDEs (pula a pergunta) ou configurar todas de uma vez:
|
|
36
50
|
|
|
37
51
|
```bash
|
|
38
52
|
npx @aksp/opencrew init --ide=claude-code,codex
|
|
39
53
|
npx @aksp/opencrew init --all
|
|
40
54
|
```
|
|
41
55
|
|
|
42
|
-
##
|
|
56
|
+
## Atualizando
|
|
43
57
|
|
|
44
|
-
|
|
58
|
+
Atualize o framework sem perder o seu trabalho:
|
|
45
59
|
|
|
46
60
|
```bash
|
|
47
61
|
npx @aksp/opencrew update
|
|
48
62
|
```
|
|
49
63
|
|
|
50
|
-
`update`
|
|
51
|
-
|
|
64
|
+
O `update` atualiza apenas `_opencrew/core`, as skills do catálogo e o `AGENTS.md`. Suas
|
|
65
|
+
`crews/`, memória, integrações de IDE e `.env` continuam intactos.
|
|
52
66
|
|
|
53
|
-
##
|
|
67
|
+
## IDEs suportadas
|
|
54
68
|
|
|
55
|
-
| IDE |
|
|
69
|
+
| IDE | Arquivo(s) de integração gerado(s) |
|
|
56
70
|
|-----|--------------------------|
|
|
57
71
|
| Claude Code | `.claude/skills/opencrew/SKILL.md`, `CLAUDE.md` |
|
|
58
|
-
| Codex (OpenAI) | `AGENTS.md` (
|
|
72
|
+
| Codex (OpenAI) | `AGENTS.md` (nativo) + `.agents/skills/opencrew/SKILL.md` |
|
|
59
73
|
| Cursor | `.cursor/rules/opencrew.mdc` |
|
|
60
74
|
| VS Code + Copilot | `.github/copilot-instructions.md` |
|
|
61
75
|
| OpenCode | `.opencode/commands/opencrew.md` |
|
|
@@ -64,55 +78,57 @@ Your `crews/`, memory, IDE bridges and `.env` are left untouched.
|
|
|
64
78
|
| Qwen Code | `QWEN.md` |
|
|
65
79
|
| Trae | `.trae/rules/opencrew.md` |
|
|
66
80
|
|
|
67
|
-
|
|
81
|
+
Cada integração é só um ponteiro enxuto para a fonte única de verdade, o **`AGENTS.md`**.
|
|
68
82
|
|
|
69
|
-
##
|
|
83
|
+
## Como funciona
|
|
70
84
|
|
|
71
|
-
- **Architect**
|
|
72
|
-
- **Sherlock** (
|
|
73
|
-
- **Pipeline Runner**
|
|
74
|
-
- **Skills Engine**
|
|
75
|
-
|
|
85
|
+
- **Architect** projeta uma crew a partir da sua descrição (agentes, pipeline, skills).
|
|
86
|
+
- **Sherlock** (opcional) analisa perfis de referência para extrair padrões reais de conteúdo.
|
|
87
|
+
- **Pipeline Runner** executa a crew, pausando nos checkpoints para sua aprovação.
|
|
88
|
+
- **Skills Engine** carrega integrações (scraping, design, publicação, e-mail…) sob demanda,
|
|
89
|
+
usando um esquema em duas camadas para manter o consumo de tokens baixo.
|
|
76
90
|
|
|
77
|
-
##
|
|
91
|
+
## Comandos (dentro da sua IDE)
|
|
78
92
|
|
|
79
|
-
|
|
|
93
|
+
| Comando | O que faz |
|
|
80
94
|
|---------|--------------|
|
|
81
|
-
| `/opencrew` |
|
|
82
|
-
| `/opencrew create <
|
|
83
|
-
| `/opencrew run <
|
|
84
|
-
| `/opencrew list` |
|
|
85
|
-
| `/opencrew edit <
|
|
86
|
-
| `/opencrew skills` |
|
|
87
|
-
|
|
88
|
-
##
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
##
|
|
94
|
-
|
|
95
|
-
`opencrew`
|
|
96
|
-
|
|
97
|
-
**[Renato Asse](https://github.com/renatoasse)**,
|
|
98
|
-
[Comunidade Sem Codar](https://semcodar.com.br).
|
|
99
|
-
|
|
100
|
-
[
|
|
101
|
-
[
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
95
|
+
| `/opencrew` | Abre o menu principal |
|
|
96
|
+
| `/opencrew create <descrição>` | Cria uma nova crew |
|
|
97
|
+
| `/opencrew run <nome>` | Executa uma crew |
|
|
98
|
+
| `/opencrew list` | Lista suas crews |
|
|
99
|
+
| `/opencrew edit <nome>` | Modifica uma crew |
|
|
100
|
+
| `/opencrew skills` | Navega / instala / remove skills |
|
|
101
|
+
|
|
102
|
+
## Para mantenedores
|
|
103
|
+
|
|
104
|
+
Veja [CONTRIBUTING.md](CONTRIBUTING.md). Regra de ouro: `AGENTS.md` é o único lugar onde
|
|
105
|
+
vivem as instruções do sistema; os arquivos por IDE são gerados a partir de `src/lib/ides.js`.
|
|
106
|
+
|
|
107
|
+
## Origem e créditos
|
|
108
|
+
|
|
109
|
+
`opencrew` é uma **distribuição reformulada do [OpenSquad](https://github.com/renatoasse/opensquad)**,
|
|
110
|
+
o framework de orquestração multi-agente criado e mantido por
|
|
111
|
+
**[Renato Asse](https://github.com/renatoasse)**, fundador da
|
|
112
|
+
[Comunidade Sem Codar](https://semcodar.com.br). O projeto original, seu conceito, o modelo
|
|
113
|
+
de agentes, o design do pipeline e o sistema de skills são trabalho dele — dê uma estrela e
|
|
114
|
+
siga o [repositório original](https://github.com/renatoasse/opensquad) e assista ao
|
|
115
|
+
[vídeo de lançamento](https://www.youtube.com/watch?v=CL1ppI4qHeU).
|
|
116
|
+
|
|
117
|
+
Eu uso o OpenSquad no meu dia a dia e fiz algumas mudanças que se encaixam no meu jeito de
|
|
118
|
+
trabalhar, que acredito que também podem ajudar outras pessoas. O que esta versão muda em
|
|
119
|
+
relação ao original:
|
|
120
|
+
|
|
121
|
+
- **Instalador npm no meu escopo** — `npx @aksp/opencrew init` / `update`, com um caminho
|
|
122
|
+
de atualização não destrutivo que preserva suas crews, memória e `.env`.
|
|
123
|
+
- **Fonte única de verdade para multi-IDE** — um `AGENTS.md` canônico; cada IDE recebe um
|
|
124
|
+
arquivo de integração gerado e enxuto, em vez de um documento mantido manualmente para
|
|
125
|
+
cada ferramenta.
|
|
126
|
+
- **Melhorias de economia de tokens e de invocação de skills** no núcleo do framework.
|
|
127
|
+
|
|
128
|
+
Este é um fork independente, feito pela comunidade — **não** é afiliado nem endossado pelo
|
|
129
|
+
Renato Asse ou pela Comunidade Sem Codar. Se você quiser o projeto oficial, use
|
|
114
130
|
[`npx opensquad init`](https://github.com/renatoasse/opensquad).
|
|
115
131
|
|
|
116
|
-
##
|
|
132
|
+
## Licença
|
|
117
133
|
|
|
118
|
-
MIT —
|
|
134
|
+
MIT — veja [LICENSE](LICENSE). Framework OpenSquad original © Renato Asse, também MIT.
|
package/package.json
CHANGED
package/src/commands/init.js
CHANGED
|
@@ -82,8 +82,8 @@ export async function init(opts = {}) {
|
|
|
82
82
|
log(`\n${c.green(c.bold('Done!'))} opencrew is installed.\n`);
|
|
83
83
|
log(`${c.bold('Next steps:')}`);
|
|
84
84
|
log(` 1. Open this folder in your AI IDE.`);
|
|
85
|
-
log(` 2.
|
|
86
|
-
log(`
|
|
85
|
+
log(` 2. Type ${c.cyan('/opencrew')} to start (first run sets up your company profile).`);
|
|
86
|
+
log(` No API keys needed up front — opencrew asks for them in chat only if a skill you use requires one.\n`);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
async function tpl(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1
|
|
1
|
+
1.0.1
|
|
@@ -121,10 +121,25 @@ For the full SKILL.md specification, see `skills/opencrew-skill-creator/referenc
|
|
|
121
121
|
|
|
122
122
|
#### a. Environment Variables (if `env:` is present)
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
This is a conversational step — never ask the user to open or edit `.env` manually.
|
|
125
|
+
The audience is non-technical (managers, analysts), so all secrets are collected in
|
|
126
|
+
chat and written to disk automatically.
|
|
127
|
+
|
|
128
|
+
For each variable listed in the `env` array:
|
|
129
|
+
1. Check if it already exists (non-empty) in the project `.env` file → if so, reuse it
|
|
130
|
+
silently, skip to the next variable.
|
|
131
|
+
2. If missing, ask the user directly in chat:
|
|
132
|
+
"This skill needs an API key to work: **{VAR_NAME}** ({one-line purpose, e.g. 'your
|
|
133
|
+
Instagram access token'}). Paste it here, or press Enter to skip and set it up later."
|
|
134
|
+
3. If the user provides a value → write it to the project `.env` file (create the file
|
|
135
|
+
from `.env.example` if it doesn't exist yet). Confirm briefly: "✅ Saved."
|
|
136
|
+
4. If the user skips → inform them:
|
|
137
|
+
"⚠️ {skill name} won't fully work until `{VAR_NAME}` is set. You can add it anytime —
|
|
138
|
+
just ask me to configure {skill name} again."
|
|
139
|
+
- Do NOT block installation either way — the skill is installed regardless of whether
|
|
140
|
+
env vars were provided.
|
|
141
|
+
- Values collected here are reused in steps b/c below — do not ask for the same
|
|
142
|
+
variable twice.
|
|
128
143
|
|
|
129
144
|
#### b. MCP Setup — stdio transport (if `type: mcp` or `type: hybrid` with `mcp.transport: stdio` or no transport specified)
|
|
130
145
|
|
|
@@ -135,9 +150,8 @@ For the full SKILL.md specification, see `skills/opencrew-skill-creator/referenc
|
|
|
135
150
|
1. Yes, overwrite
|
|
136
151
|
2. No, keep existing
|
|
137
152
|
If "No" → skip MCP configuration but still complete installation
|
|
138
|
-
3.
|
|
139
|
-
|
|
140
|
-
- If missing, ask the user to type the value directly
|
|
153
|
+
3. Use the values already collected in step 6.a for each env var in the skill's `env`
|
|
154
|
+
array (do not ask again).
|
|
141
155
|
4. Add to `mcpServers`:
|
|
142
156
|
```json
|
|
143
157
|
"{server_name}": {
|
|
@@ -154,9 +168,8 @@ For the full SKILL.md specification, see `skills/opencrew-skill-creator/referenc
|
|
|
154
168
|
|
|
155
169
|
1. Read `.claude/settings.local.json` (create with `{"mcpServers": {}}` if it doesn't exist)
|
|
156
170
|
2. Check for `server_name` conflict (same as stdio above)
|
|
157
|
-
3.
|
|
158
|
-
|
|
159
|
-
- If missing, ask the user to type the value directly
|
|
171
|
+
3. Use the values already collected in step 6.a for each env var in the skill's `env`
|
|
172
|
+
array (do not ask again).
|
|
160
173
|
4. Build the mcpServers entry:
|
|
161
174
|
- Start with `{ "type": "http", "url": "{url}" }`
|
|
162
175
|
- If the skill has a `headers` field in `mcp`, add a `"headers"` object by resolving
|
|
@@ -267,8 +280,11 @@ before the pipeline begins (fail fast).
|
|
|
267
280
|
|
|
268
281
|
d. **Verify env vars** (if `env:` is present):
|
|
269
282
|
- Check each variable in `.env`
|
|
270
|
-
- If any are missing →
|
|
271
|
-
|
|
283
|
+
- If any are missing → ask the user conversationally, right here in chat, the same
|
|
284
|
+
way as Operation 2, step 6.a (never point them to the `.env` file to edit it
|
|
285
|
+
themselves). If they provide a value, write it to `.env` and continue. If they
|
|
286
|
+
skip, warn: "⚠️ Skill '{skill}' is missing environment variable(s): {list}. It may
|
|
287
|
+
not work correctly." — but do NOT block pipeline execution either way.
|
|
272
288
|
|
|
273
289
|
4. **Return resolved skill list**: Return all resolved skills with their parsed frontmatter
|
|
274
290
|
and SKILL.md body content. This list is used by Operation 6 to inject instructions.
|