O ClickUpfy reúne o terminal, a configuração de múltiplos accounts, quatro skills para agentes e um servidor MCP no mesmo pacote. O recorte atual atende o trabalho de desenvolvimento de software: navegação pela hierarquia do ClickUp, Sprints existentes, tarefas, comentários e time tracking.
O percurso sequencial do usuário começa em
docs/user/README.md. Além dos capítulos de instalação
e operação, o manual inclui referências de perfis, hierarquia, tarefas,
checklists, comentários, tempo, Sprints, Docs, skills e servidor MCP. Cada
comando público e cada ferramenta MCP têm parâmetros, efeitos, limites e cinco
exemplos de uso; tests/documentation-coverage.test.ts mantém essa cobertura
como parte da suíte do pacote.
As mesmas páginas geram o ClickUpfy — Guia completo do usuário em PDF e EPUB. O pipeline reutiliza o design do ebook do Specsfy e registra digest das fontes e hashes dos artefatos:
npm run ebook
npm run ebook:verifyVersão, formatos e regras de atualização ficam em
ebook/README.md.
Após cadastrar um perfil com clickupfy install, execute no projeto:
clickupfy mcp setupO assistente permite selecionar perfil, espaço, lista e clientes pelo terminal. Defina um nome para cada MCP; repita o comando com outro nome para acrescentar outro perfil ou lista ao mesmo projeto. Os clientes disponíveis são Claude Code, Codex, Gemini CLI e OpenCode. As API keys permanecem no cadastro pessoal. Veja parâmetros e exemplos.
- Node.js
>=22.12.0para instalar pelo npm ou desenvolver; - uma API key pessoal do ClickUp;
- acesso da API key a pelo menos um workspace.
O pacote npm instala um launcher global e seleciona automaticamente o executável compilado para Linux x64, macOS Intel ou macOS Apple Silicon:
npm install --global @promovaweb/clickupfy
clickupfy --versionOs três executáveis nativos pertencem ao mesmo pacote e à mesma versão. Em outras plataformas, inclusive Windows, o launcher usa o build JavaScript incluído no pacote.
Para atualizar uma instalação global feita pelo npm, execute:
clickupfy upgradeO comando instala @promovaweb/clickupfy@latest e confirma a versão do
launcher global depois da troca. Para um executável standalone, baixe o novo
archive na GitHub Release
e substitua o arquivo manualmente.
Cada GitHub Release
distribui executáveis standalone para Linux x64, macOS Intel, macOS Apple
Silicon e Windows x64. Baixe o archive da sua plataforma, extraia o arquivo
clickupfy ou clickupfy.exe e coloque-o em uma pasta presente no PATH.
No Linux ou macOS, confirme a permissão depois de extrair:
chmod +x clickupfy
./clickupfy --versionO executável já contém o runtime Node.js e as skills. Node.js continua sendo necessário somente para desenvolver o ClickUpfy ou usar o fluxo de instalação do npm.
npm install
npm run build
npm linkO npm link disponibiliza clickupfy no terminal. Para conferir:
clickupfy --version
clickupfy --helpO setup valida a API key, consulta os workspaces autorizados e associa um deles ao account local:
clickupfy installPara verificar o setup local e os arquivos de configuração do projeto:
clickupfy doctorUm terminal interativo oculta a API key e abre a escolha do workspace. A mesma configuração pode ser feita sem prompts:
clickupfy install \
--api-key "pk_..." \
--name "Promovaweb" \
--workspace "123456" \
--non-interactiveO arquivo fica em:
~/clickupfy/config.json
Em Linux e macOS, o diretório recebe permissão 0700 e o arquivo recebe
0600. No Windows, o acesso depende das ACLs do perfil; o doctor informa
que as verificações POSIX não se aplicam e não afirma ter auditado as ACLs. A API key é
armazenada no JSON porque o CLI precisa autenticar chamadas futuras; não
adicione esse arquivo ao Git, não envie seu conteúdo em comentários e não use
uma pasta sincronizada como destino.
O schema inicial permite vários accounts:
{
"version": 1,
"activeAccount": "promovaweb",
"accounts": {
"promovaweb": {
"name": "Promovaweb",
"apiKey": "pk_...",
"user": {
"id": 123,
"username": "Desenvolvedor"
},
"workspace": {
"id": "456",
"name": "Engenharia"
},
"createdAt": "2026-07-29T12:00:00.000Z",
"updatedAt": "2026-07-29T12:00:00.000Z"
}
}
}Cada account combina uma API key, o usuário autenticado e um workspace. O setup acrescenta ou atualiza um account sem apagar os demais.
clickupfy account list
clickupfy account show
clickupfy account use promovaweb
clickupfy account remove outro-account
clickupfy status
clickupfy whoamiA opção global --account <nome> escolhe outro account durante um único
comando. Ela não altera o account ativo:
clickupfy --account cliente-a task get 86abc123O account também pode ser definido pela variável
PROMOVAWEB_CLICKUPFY_ACCOUNT. A variável
PROMOVAWEB_CLICKUPFY_CONFIG troca o caminho do JSON para testes e automações
isoladas.
O clickupfy é único na máquina e recebe perfil e IDs por parâmetros. O uso
agêntico fica isolado nos arquivos de cada projeto: .mcp.json para clientes
MCP compatíveis com JSON e .codex/config.toml para o Codex. Os dois fixam o
perfil e a hierarquia permitida sem armazenar a API key.
Na raiz de cada projeto, execute:
clickupfy agent install \
--account promovaweb \
--workspace 123 \
--space 10 \
--folder 20 \
--list 30O comando instala as skills e mescla o servidor nos dois arquivos existentes, preservando outros servidores e configurações:
{
"mcpServers": {
"promovaweb-clickupfy": {
"command": "clickupfy",
"args": [
"mcp",
"serve",
"--account",
"promovaweb",
"--workspace",
"123",
"--space",
"10",
"--folder",
"20",
"--list",
"30"
]
}
}
}No Codex, a mesma entrada usa a tabela mcp_servers do TOML:
[mcp_servers."promovaweb-clickupfy"]
command = "clickupfy"
args = ["mcp", "serve", "--account", "promovaweb", "--workspace", "123", "--space", "10", "--folder", "20", "--list", "30"]space e list são obrigatórios em agent install. O --account global escolhe
o perfil; sem ele, o comando fixa o perfil ativo. Workspace e Folder são
opcionais. O Sprint Folder também é opcional: acrescente
--sprint-folder <id> somente nos projetos que usam Sprints. Quando o
workspace for informado, o servidor confirma que ele coincide com o workspace
associado ao perfil.
As ferramentas do agente podem omitir os IDs fixados. Uma tentativa de passar outro perfil, Space, Folder ou List é rejeitada pelo servidor. Quando o Sprint Folder estiver configurado, o mesmo isolamento vale para ele. Assim, dois projetos podem manter MCPs ativos em paralelo sem compartilhar destino. Cada raiz pode ter os dois formatos para atender clientes diferentes:
projeto-a/.mcp.json e .codex/config.toml -> account dev-a, List 30
projeto-b/.mcp.json e .codex/config.toml -> account cliente-b, List 70
A API key continua somente em
~/clickupfy/config.json. Os arquivos .mcp.json e
.codex/config.toml guardam nomes de perfis e IDs da hierarquia, mas nenhuma
credencial.
O fluxo abaixo encontra os IDs antes de consultar as tarefas:
clickupfy workspace list
clickupfy space list
clickupfy folder list --space <space-id>
clickupfy list list --folder <folder-id>
clickupfy task list --list <list-id>
clickupfy task search --query "autenticação"Use clickupfy list list --space <space-id> para uma list que não pertence a
um folder. A opção global --json imprime a resposta completa da API; sem ela,
listas e tarefas usam uma tabela menor.
O catálogo inclui 173 operações das especificações oficiais: 138 da v2 e 35
da v3. Cada endpoint tem um comando clickupfy api v2-... ou v3-... e uma
ferramenta MCP clickupfy_api_..., com parâmetros de caminho, query e corpo.
Os comandos existentes continuam disponíveis. Consulte o
guia da API e a referência de endpoints.
clickupfy api list
clickupfy api describe v2-get-space-tags
clickupfy api v2-get-space-tags --path '{"space_id":"123"}'
clickupfy api v3-search-docs-public --path '{"workspace_id":"123"}'Os arquivos oficiais ficam em api/, e o catálogo distribuído fica em
src/api/catalog.json. npm run api:generate gera o catálogo e o manual;
npm run api:check confere os arquivos locais; npm run api:upstream:check
compara com a origem sem gravar; npm run api:update baixa as especificações
e regenera os arquivos. A suíte npm run validar verifica a cobertura.
Uploads usam multipart, e OAuth aceita JSON ou formulário. O MCP em modo
somente leitura omite ferramentas mutáveis. As chamadas DELETE do catálogo
exigem --yes no CLI ou confirm: true no MCP. A cobertura é comprovada por
testes simulados; o acesso real depende das permissões e do plano do ClickUp.
Use tag para gerenciar nomes e cores no Space e task add-tag ou
task remove-tag para alterar as associações de uma tarefa:
clickupfy tag list --space 123
clickupfy tag create bug --space 123 --foreground "#ffffff" --background "#cc0000"
clickupfy tag update bug --space 123 --name defeito
clickupfy task add-tag task-1 defeito
clickupfy task remove-tag task-1 defeito
clickupfy tag delete defeito --space 123 --yesNo MCP, use clickupfy_tags_list, clickupfy_tag_create,
clickupfy_tag_update, clickupfy_tag_delete, clickupfy_task_add_tag e
clickupfy_task_remove_tag. A edição preserva nome e cores omitidos. Consulte
os parâmetros na referência de tarefas.
clickupfy task get <task-id> --json
clickupfy task get <task-id> --markdown
clickupfy list get <list-id>
clickupfy task create \
--list <list-id> \
--name "Implementar autenticação" \
--markdown-content "Adicionar o fluxo de login e os testes." \
--start-date 2026-08-01 \
--due-date 2026-08-05
clickupfy task create \
--list <list-id> \
--name "Criar testes" \
--parent <task-id> \
--markdown-content "Cobrir o fluxo principal."
clickupfy task update <task-id> --status "em andamento"
clickupfy task update <task-id> --priority 2
clickupfy task update <task-id> --start-date 2026-08-01
clickupfy task update <task-id> --due-date 2026-08-05
clickupfy task add-tag <task-id> "em revisão"
clickupfy task add-tag DEV-42 backend --custom-task-id
clickupfy comment list --task <task-id>
clickupfy comment create \
--task <task-id> \
--text "A implementação passou nos testes locais."task get inclui a resposta original do ClickUp e uma propriedade execution.
Essa propriedade organiza a tarefa principal, as subtarefas de qualquer nível
e cada item de checklist em uma fila plana. Cada entrada possui key, type,
parentKey, depth, done, state e as ações equivalentes para CLI e MCP.
Assim, um agente pode selecionar um item pendente pela chave, executar o
trabalho e registrar a conclusão sem perder a hierarquia.
{
"execution": {
"summary": {
"total": 4,
"done": 1,
"pending": 3,
"tasks": 1,
"subtasks": 1,
"checklistItems": 2
},
"items": [
{
"key": "checklist:check-1:item-1",
"type": "checklist_item",
"parentKey": "task:86abc123",
"done": false,
"state": "pendente",
"action": {
"complete": {
"cli": "clickupfy checklist set 86abc123 check-1 item-1 --resolved",
"mcp": {
"tool": "clickupfy_checklist_item_set"
}
}
}
}
]
}
}Para obter apenas a resposta original da API, use
clickupfy task get <task-id> --raw. A saída compacta, sem --json, mostra a
mesma fila em tabela e usa indentação no nome para representar os níveis.
Use clickupfy task get <task-id> --markdown quando o contexto precisar ser
consumido como um único texto. O documento concatena metadados, descrição,
resumo e itens executáveis em checkboxes hierárquicos, mantendo as chaves e os
comandos de conclusão. As opções --raw, --markdown e --json são
mutuamente exclusivas.
Marque ou reabra um item de checklist com:
clickupfy checklist create <task-id> --name "Testes"
clickupfy checklist item-create <checklist-id> --name "Executar testes unitários"
clickupfy checklist set <task-id> <checklist-id> <item-id> --resolved
clickupfy checklist set <task-id> <checklist-id> <item-id> --openOs dois primeiros comandos criam o checklist e seus itens ainda abertos. As skills usam esse contrato para registrar os testes no momento da criação e deixam a conclusão para o checkpoint real da implementação.
O ClickUpfy confirma primeiro que o item pertence à tarefa informada, grava o
novo estado e relê toda a tarefa. O comando só comunica sucesso quando a nova
leitura confirma o valor de resolved.
As prioridades seguem a API do ClickUp: 1 urgente, 2 alta, 3 normal e
4 baixa. A exclusão exige confirmação:
clickupfy task delete <task-id> --yesNo ClickUp, cada Sprint funciona como uma List dentro de um Sprint Folder. O
CLI reconhece como Sprint uma List que tenha start_date e due_date; Lists
comuns do mesmo folder ficam fora do resultado, salvo quando
--include-regular for informado.
clickupfy sprint list --folder <sprint-folder-id>
clickupfy sprint current --folder <sprint-folder-id>
clickupfy sprint get <sprint-id>
clickupfy sprint tasks <sprint-id> --open-onlyO relatório de sprint get percorre todas as páginas, inclui tarefas
concluídas e calcula avanço por quantidade de tarefas e por Sprint Points. Uma
tarefa pode ser associada a uma Sprint sem perder sua List principal:
clickupfy sprint add-task <sprint-id> <task-id>
clickupfy sprint remove-task <sprint-id> <task-id>
clickupfy sprint set-points <task-id> 5
clickupfy task update <task-id> --points 8A API pública do ClickUp não oferece um endpoint próprio para criar uma Sprint ou configurar o Sprint ClickApp. Crie o Sprint Folder e as Sprints na interface do ClickUp; depois use o CLI para consulta, planejamento e associação de tarefas.
clickupfy time current
clickupfy time start \
--task <task-id> \
--description "Implementação e testes"
clickupfy time stopConsulte o registro atual antes de iniciar outro time entry.
O ClickUpfy gerencia Docs do ClickUp pela API v3 (/api/v3), separada da API
de tarefas (/api/v2). Todos os comandos operam no workspace do perfil ativo.
clickupfy doc list --query "runbook"
clickupfy doc get <doc-id>
clickupfy doc create \
--name "Runbook de deploy" \
--parent-id <list-id> \
--parent-type 6 \
--create-page--parent-type segue os tipos de local da API do ClickUp: 4 Space, 5
Folder, 6 List, 7 Everything (o próprio workspace) e 12 tarefa. Informe
--parent-id e --parent-type juntos, ou omita ambos para criar um Doc solto
no workspace.
Páginas ficam sob doc page:
clickupfy doc page tree <doc-id>
clickupfy doc page list <doc-id>
clickupfy doc page get <doc-id> <page-id>
clickupfy doc page create <doc-id> \
--name "Introdução" \
--content "# Introdução\n\nContexto do runbook."
clickupfy doc page create <doc-id> \
--name "Rollback" \
--parent-page <page-id> \
--content "## Passos de rollback"
clickupfy doc page update <doc-id> <page-id> \
--content "Parágrafo adicional." \
--content-edit-mode appenddoc page tree retorna a hierarquia de páginas sem conteúdo, útil para
localizar um page-id antes de ler ou editar. doc page list e doc page get retornam o conteúdo em Markdown por padrão (--content-format aceita
text/md ou text/plain). doc page create sem --parent-page cria uma
página de primeiro nível; com --parent-page, cria uma sub-página.
doc page update exige ao menos um campo e usa --content-edit-mode para
decidir entre substituir (replace, padrão), acrescentar (append) ou
anteceder (prepend) o conteúdo salvo.
A API pública do ClickUp não oferece endpoints para excluir Docs ou páginas, reordenar páginas na árvore, nem gerenciar permissões de compartilhamento. Essas ações continuam exclusivas da interface do ClickUp.
O servidor usa o transporte stdio e lê a configuração global de perfis do CLI:
clickupfy mcp serve --list 30Para um agente que só pode consultar o ClickUp:
clickupfy mcp serve --list 30 --read-onlyO modo read-only remove as ferramentas de escrita de tools/list e rejeita
seu uso porque elas não são registradas. Para iniciar manualmente um MCP
específico:
clickupfy mcp serve \
--account promovaweb \
--workspace 123 \
--space 10 \
--folder 20 \
--list 30O servidor não inicia sem --list. O parâmetro --sprint-folder é opcional e
pode ser acrescentado ao comando quando o projeto usar Sprints.
As ferramentas cobrem accounts, workspaces, spaces, folders, lists, Sprints,
tarefas, subtarefas, checklists, comentários, time tracking e Docs.
clickupfy_list_get retorna os status configurados na List e permite escolher
um status terminal sem adivinhar sua grafia.
clickupfy_task_get devolve a fila em execution. Com markdown: true, a
mesma ferramenta retorna diretamente um único texto Markdown concatenado, sem
codificação JSON. A ferramenta
clickupfy_checklist_item_set marca ou reabre um item e confirma o estado
persistido. clickupfy_checklist_create e
clickupfy_checklist_item_create montam checklists item por item. A criação e
a atualização de tarefas aceitam Markdown, tarefa pai, data de início e data
de entrega. Consultas de Sprint permanecem disponíveis em read-only;
associação de tarefas, alteração de Points e checklist items aparecem somente
no servidor com escrita. As ferramentas de escrita exigem parâmetros
explícitos, e clickupfy_task_delete também exige confirm: true.
As ferramentas de Docs seguem o mesmo padrão: clickupfy_docs_list,
clickupfy_doc_get, clickupfy_doc_page_tree, clickupfy_doc_pages_list e
clickupfy_doc_page_get permanecem disponíveis em read-only, porque só
consultam o ClickUp. clickupfy_doc_create, clickupfy_doc_page_create e
clickupfy_doc_page_update aparecem somente no servidor com escrita e usam a
API v3 do ClickUp por baixo. Como Docs não têm List própria, essas ferramentas
sempre operam no workspace do perfil ativo, sem a fixação usada por tarefas.
clickupfy_mcp_context mostra o destino fixado sem expor a API key.
clickupfy_folders_list, clickupfy_lists_list, clickupfy_tasks_list,
clickupfy_tasks_search, clickupfy_sprints_list, clickupfy_sprint_current e
clickupfy_task_create usam os IDs do MCP quando os argumentos correspondentes
forem omitidos. Se a ferramenta receber um ID diferente, o servidor recusa a
operação. A busca fica sempre restrita à List obrigatória do projeto.
O pacote distribui quatro skills:
clickupfy-devorienta consultas e mudanças do trabalho diário de software;clickup-issue-createtransforma uma solicitação ou histórico em tarefa Markdown, subtarefas recursivas e checklists de testes sem executar o trabalho;clickup-issue-implementconduz cada tarefa e subtarefa por leitura, plano visível, comentários em tempo real, datas, time tracking, checklists, validação e status terminal;clickupfy-releaseprepara e acompanha versões, changelog, tags e artefatos.
Instale as quatro no projeto atual pelo gerenciador skills:
clickupfy agent skill installPara instalar em ~/.codex/skills:
clickupfy agent skill install --globalO comando abaixo chama npx skills add promovaweb/clickupfy para instalar as skills
em .agents/skills/ e acrescenta seu servidor ao .mcp.json e ao
.codex/config.toml, sem remover outros servidores ou configurações:
clickupfy agent install \
--account promovaweb \
--space 10 \
--folder 20 \
--list 30Cada repositório mantém seus próprios .mcp.json e .codex/config.toml, mesmo
quando vários projetos usam o mesmo executável e o mesmo arquivo global de
credenciais. Projetos que usam Sprints podem acrescentar
--sprint-folder <id> ao comando.
Use --force por compatibilidade quando precisar repetir a instalação. Os
comandos clickupfy agent skill list e clickupfy agent skill show <nome>
permitem inspecionar o catálogo empacotado; use npx skills list para consultar as
skills instaladas pelo gerenciador.
| Grupo | Ações |
|---|---|
install |
Configura a API key e o workspace. |
doctor |
Verifica o setup e os arquivos de configuração locais. |
upgrade |
Atualiza a instalação global pelo npm. |
account |
list, show, use, remove. |
workspace |
list, use. |
space |
list. |
folder |
list. |
list |
list, get. |
sprint |
list, current, get, tasks, add-task, remove-task, set-points. |
task |
list, search, get, create, update, delete. |
checklist |
create, item-create, set com --resolved ou --open. |
comment |
list, create. |
time |
current, start, stop. |
doc |
list, get, create. |
doc page |
tree, list, get, create, update. |
mcp |
serve. |
agent |
Instala skills e configura o MCP. |
Execute clickupfy <grupo> --help para conferir argumentos e opções.
npm run typecheck # inclui src e tests
npm test
npm run build
npm run release:check
npm run build:executable
npm run npm:stage -- release-assets
npm run npm:validate-package -- release-assets/promovaweb-clickupfy-X.Y.Z.tgz
npm run validarOs testes usam uma API HTTP local simulada. Eles não exigem credenciais reais e comprovam a permissão do arquivo, o setup não interativo, o cliente HTTP e o handshake MCP read-only, além da descoberta, paginação e medição de Sprints. Também comprovam que o MCP exige uma List, inicia sem Sprint Folder, mantém a busca dentro da List e recusa IDs fora do destino configurado. A fila executável possui testes para subtarefas aninhadas, checklist items, chaves individuais, renderização Markdown e confirmação do estado depois da escrita. O cliente HTTP também valida a criação de subtarefas Markdown, datas, checklists e itens, enquanto o handshake confirma a descoberta das novas ferramentas no perfil correto.
O Release Please abre uma Release PR a partir dos Conventional Commits. O merge
dessa PR atualiza versão e changelog, cria a tag vMAJOR.MINOR.PATCH e publica
a GitHub Release. Na mesma execução, o GitHub Actions gera executáveis Linux,
macOS e Windows, empacota os binários Linux e macOS, publica
@promovaweb/clickupfy no registry npm e gera SHA256SUMS. Em repositórios
públicos, a execução também gera attestations de proveniência.
Não crie tags nem edite a versão manualmente no fluxo normal. A configuração
única do repositório, a convenção dos commits, os comandos de validação e a
recuperação de falhas estão em RELEASING.md. A skill
clickupfy-release orienta agentes durante esse processo.
A sintaxe recurso ação, a saída compacta e a presença do MCP no mesmo
executável foram inspiradas no projeto
nicholasbester/clickup-cli,
distribuído sob Apache-2.0. Esta implementação foi escrita em TypeScript para a
configuração multi-account e o recorte de desenvolvimento da Promovaweb.
O código e o histórico pertencem ao repositório independente
promovaweb/clickupfy.