@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 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
- **Create AI agent crews that work together — right from your IDE.**
3
+ **Crie equipes de agentes de IA que trabalham juntos — direto na sua IDE.**
4
4
 
5
- opencrew is a multi-agent orchestration framework. Describe what you need in plain
6
- language and it assembles a team of specialized agents that run as an automated pipeline
7
- with human approval checkpoints. It works across Claude Code, Cursor, Codex, Gemini CLI,
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
- > **This is not an original framework — it's my personal build of OpenSquad.**
11
- > [OpenSquad](https://github.com/renatoasse/opensquad) was created by
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
- > I ([aksp](https://www.npmjs.com/~aksp)) use OpenSquad daily and wanted to improve a few
14
- > things for my own workflow — so `opencrew` is that reworked version, shared in case it
15
- > helps others too. All credit for the original idea and framework goes to Renato Asse.
16
- > See [Origin & credits](#origin--credits) below. MIT licensed, same as the original.
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
- ## Installation
25
+ ## Instalação
21
26
 
22
- **Prerequisite:** Node.js 20+
27
+ **Pré-requisito:** Node.js 20+
23
28
 
24
29
  ```bash
25
30
  npx @aksp/opencrew init
26
31
  ```
27
32
 
28
- `init` scaffolds the workspace in the current folder and asks which AI IDEs you use, then
29
- generates the right integration files for each. Then:
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
- 1. Open the folder in your AI IDE.
32
- 2. Copy `.env.example` to `.env` and fill in keys for the skills you plan to use.
33
- 3. Type `/opencrew` to start — the first run sets up your company profile.
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
- Preselect IDEs (skip the prompt) or configure all of them:
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
- ## Updating
56
+ ## Atualizando
43
57
 
44
- Refresh the framework without losing your work:
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` refreshes only `_opencrew/core`, the catalog skills and `AGENTS.md`.
51
- Your `crews/`, memory, IDE bridges and `.env` are left untouched.
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
- ## Supported IDEs
67
+ ## IDEs suportadas
54
68
 
55
- | IDE | Bridge file(s) generated |
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` (native) + `.agents/skills/opencrew/SKILL.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
- Every bridge is a thin pointer to the single source of truth, **`AGENTS.md`**.
81
+ Cada integração é só um ponteiro enxuto para a fonte única de verdade, o **`AGENTS.md`**.
68
82
 
69
- ## How it works
83
+ ## Como funciona
70
84
 
71
- - **Architect** designs a crew from your description (agents, pipeline, skills).
72
- - **Sherlock** (optional) analyzes reference profiles to extract real content patterns.
73
- - **Pipeline Runner** executes the crew, pausing at checkpoints for your approval.
74
- - **Skills Engine** loads integrations (scraping, design, publishing, email…) on demand,
75
- using a two-tier scheme to keep token usage low.
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
- ## Commands (inside your IDE)
91
+ ## Comandos (dentro da sua IDE)
78
92
 
79
- | Command | What it does |
93
+ | Comando | O que faz |
80
94
  |---------|--------------|
81
- | `/opencrew` | Open the main menu |
82
- | `/opencrew create <description>` | Create a new crew |
83
- | `/opencrew run <name>` | Run a crew |
84
- | `/opencrew list` | List your crews |
85
- | `/opencrew edit <name>` | Modify a crew |
86
- | `/opencrew skills` | Browse / install / remove skills |
87
-
88
- ## For maintainers
89
-
90
- See [CONTRIBUTING.md](CONTRIBUTING.md). The golden rule: `AGENTS.md` is the only place
91
- system instructions live; per-IDE files are generated from `src/lib/ides.js`.
92
-
93
- ## Origin & credits
94
-
95
- `opencrew` is a **reworked distribution of [OpenSquad](https://github.com/renatoasse/opensquad)**,
96
- the multi-agent orchestration framework created and maintained by
97
- **[Renato Asse](https://github.com/renatoasse)**, founder of
98
- [Comunidade Sem Codar](https://semcodar.com.br). The original project, its concept, agent
99
- model, pipeline design and skill system are his work — please star and follow the
100
- [upstream repository](https://github.com/renatoasse/opensquad) and watch the
101
- [launch video](https://www.youtube.com/watch?v=CL1ppI4qHeU).
102
-
103
- I use OpenSquad in my day-to-day and made a few changes that fit how I work, which I believe
104
- can help other people as well. What this build changes relative to upstream:
105
-
106
- - **npm installer under my scope** — `npx @aksp/opencrew init` / `update`, with a
107
- non-destructive update path that preserves your crews, memory and `.env`.
108
- - **Single source of truth for multi-IDE** — one canonical `AGENTS.md`; every IDE gets a
109
- thin generated bridge file instead of a hand-maintained document per tool.
110
- - **Token-economy and skill-invocation improvements** to the framework core.
111
-
112
- This is an independent, community fork — it is **not** affiliated with or endorsed by
113
- Renato Asse or Comunidade Sem Codar. If you want the official project, use
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
- ## License
132
+ ## Licença
117
133
 
118
- MIT — see [LICENSE](LICENSE). Original OpenSquad framework © Renato Asse, also MIT.
134
+ MIT — veja [LICENSE](LICENSE). Framework OpenSquad original © Renato Asse, também MIT.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aksp/opencrew",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -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. Copy ${c.cyan('.env.example')} to ${c.cyan('.env')} and fill in keys for the skills you use.`);
86
- log(` 3. Type ${c.cyan('/opencrew')} to start (first run sets up your company profile).\n`);
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.15
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
- For each variable listed in the `env` array, check if it exists in the project `.env` file.
125
- - For each missing variable, inform the user:
126
- "⚠️ Environment variable `{VAR_NAME}` is required by {skill name}. Add it to your `.env` file."
127
- - Do NOT block installation — warn only. The skill is installed even without env vars configured.
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. For each env var listed in the skill's `env` array:
139
- - Check `.env` for an existing value
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. For each env var listed in the skill's `env` array:
158
- - Check `.env` for an existing value
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 → warn the user but do NOT block pipeline execution.
271
- "⚠️ Skill '{skill}' is missing environment variable(s): {list}. It may not work correctly."
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.