a forma da caixa; `cfour config show` lista as que valem aqui
--parent <ref>
não
a caixa que contem esta; e o que decide o nivel C4
--technology <t>
não
a tecnologia, como aparece na caixa
--description <d>
não
uma frase sobre o que ela faz
--tag <tag>
sim
uma etiqueta; repetivel
--meta <chave=valor>
sim
um metadado; repetivel
--bind <modelagem:ref>
não
espelho de um elemento de outra modelagem
--projeto <id>
não
em qual projeto, quando o id nao diz
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour element add loja --shape system --name "Loja Online"
cfour element add loja-api --parent loja --shape api --technology ".NET 8"
cfour element add pedido-service --parent loja-api --shape component --tag core
cfour element add cache --parent loja --dry-run
cfour element list
lista as caixas, com filtros
Também: ls
Opção
Repetível
O que faz
--modelagem <id>
não
em qual modelagem olhar
--projeto <id>
não
so as de um projeto
--level <nivel>
não
context, container, component ou code
--shape <forma>
não
so as de uma forma
--tag <tag>
não
so as que tem esta etiqueta
--json
não
saida em JSON
cfour element show <ref>
tudo sobre uma caixa, e quem aponta para ela
Também: get
Argumento
Obrigatório
O que é
ref
sim
id local ou <projeto>/<id>
Opção
Repetível
O que faz
--modelagem <id>
não
em qual modelagem olhar
--json
não
saida em JSON
cfour element set <ref>
altera campos de uma caixa que ja existe
Argumento
Obrigatório
O que é
ref
sim
id local ou <projeto>/<id>
Opção
Repetível
O que faz
--name <nome>
não
o nome legivel
--shape <forma>
não
a forma
--parent <ref>
não
move na arvore de contencao; e o que muda o nivel C4
--technology <t>
não
a tecnologia
--description <d>
não
uma frase sobre o que ela faz
--bind <modelagem:ref>
não
espelho de um elemento de outra modelagem
--tag <tag>
sim
acrescenta uma etiqueta; repetivel
--tag-rm <tag>
sim
tira uma etiqueta; repetivel
--meta <chave=valor>
sim
define um metadado; repetivel
--meta-rm <chave>
sim
tira um metadado; repetivel
--clear <campo>
sim
apaga um campo; repetivel
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour element set loja-api --technology ".NET 9"
cfour element set loja/loja-web --name "Vitrine"
cfour element set pedido-service --parent loja-api # reclassifica o nivel C4
cfour element set loja-api --tag pci --tag-rm legado
cfour element set loja-api --meta owner=squad-checkout --meta-rm layer
cfour element set loja-api --clear technology
cfour element rm <ref>
remove uma caixa, se ninguem depender dela
Também: remove
Argumento
Obrigatório
O que é
ref
sim
id local ou <projeto>/<id>
Opção
Repetível
O que faz
--cascade
não
nao recusa por causa de quem aponta para ela
--yes
não
segue sem confirmar; so faz sentido junto de --cascade
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour element rm loja/loja-legacy --dry-run
cfour element rm loja/loja-legacy
cfour element mv <ref> <novo-id>
renomeia uma caixa, e conserta quem apontava para ela
Também: rename
Argumento
Obrigatório
O que é
ref
sim
id local ou <projeto>/<id>
novo-id
sim
o id novo, local
Opção
Repetível
O que faz
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour element mv loja-api api-de-pedidos --dry-run
cfour element mv loja/loja-legacy carrinho-antigo
cfour relation
as setas entre as caixas
Também: rel
cfour relation add <origem> <destino>
liga duas caixas
Argumento
Obrigatório
O que é
origem
sim
de onde a seta sai
destino
sim
onde a seta chega
Opção
Repetível
O que faz
--kind <tipo>
não
o tipo da seta (padrao: sync); `cfour config show` lista os que valem aqui
--label <texto>
não
o que trafega, em poucas palavras
--description <d>
não
a forma longa, que aparece ao passar o mouse
--tag <tag>
sim
uma etiqueta; repetivel
--meta <chave=valor>
sim
um metadado; repetivel
--route <r>
não
straight, orthogonal ou bezier; sem isto vale o padrao do diagrama
--bidirectional
não
poe ponta tambem na origem
--inline
não
escreve dentro do documento da origem, com o from implicito
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
os recados: presos numa caixa, ou soltos num diagrama
cfour note add <alvo> <texto>
escreve um recado
Argumento
Obrigatório
O que é
alvo
sim
a caixa OU o diagrama que recebe a nota
texto
sim
o que a nota diz
Opção
Repetível
O que faz
--kind <tipo>
não
o tipo da nota (padrao: info); `cfour config show` lista os que valem aqui
--target <ref>
não
a caixa, quando o mesmo id nomeia uma caixa e um diagrama
--scope <diagrama>
não
o diagrama, para restringir uma nota de caixa a um desenho so
--meta <chave=valor>
sim
um metadado; repetivel
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour note add loja-api "Ponto unico de falha" --kind risk
cfour note add loja-db "Vale separar a replica?" --kind question --scope containers
cfour note add containers "Congelado para a revisao de 2026-Q1"
cfour note list
lista as notas
Também: ls
Opção
Repetível
O que faz
--modelagem <id>
não
em qual modelagem olhar
--target <ref>
não
so as de uma caixa
--scope <diagrama>
não
so as de um diagrama
--json
não
saida em JSON
cfour note set <alvo>
altera um recado que ja existe
Argumento
Obrigatório
O que é
alvo
sim
a caixa ou o diagrama que tem a nota
Opção
Repetível
O que faz
--text <texto>
não
o texto novo
--kind <tipo>
não
o tipo novo
--scope <diagrama>
não
restringe a nota a um diagrama
--meta <chave=valor>
sim
define um metadado; repetivel
--meta-rm <chave>
sim
tira um metadado; repetivel
--clear <campo>
sim
apaga um campo; repetivel
--match <trecho>
não
quando o alvo tem mais de uma nota
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour note set loja-api --text "Ponto unico de falha do fechamento"
cfour note set loja-db --match replica --kind decision
cfour note set containers --clear scope
cfour note rm <alvo>
tira um recado
Também: remove
Argumento
Obrigatório
O que é
alvo
sim
a caixa ou o diagrama que tem a nota
Opção
Repetível
O que faz
--match <trecho>
não
quando o alvo tem mais de uma nota
--kind <tipo>
não
so as deste tipo
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
row para a banda ler como uma linha; sem isto, empilha
--parent <banda>
não
aninha esta banda dentro de outra
--include <seletor>
sim
poe quem o seletor pega nesta banda; repetivel
--include-rm <seletor>
sim
tira um seletor desta banda; repetivel
--match-tag <tag>
sim
entra quem tem esta etiqueta; repetivel
--match-meta <chave=valor>
sim
entra quem tem este metadado; repetivel
--match-level <nivel>
sim
entra quem e deste nivel; repetivel
--match-shape <forma>
sim
entra quem tem esta forma; repetivel
--match-project <id>
sim
entra quem e deste projeto; repetivel
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour group add containers dados --name Dados --match-shape database
cfour group add containers experiencia --name "Experiência" --orientation row --include loja-web
cfour group add containers replicas --parent dados --match-tag replica
cfour group list <diagrama>
as bandas de um diagrama, com o aninhamento
Também: ls
Argumento
Obrigatório
O que é
diagrama
sim
id local ou <projeto>/<id>
Opção
Repetível
O que faz
--modelagem <id>
não
em qual modelagem olhar
--json
não
saida em JSON
cfour group set <diagrama> <id>
altera uma banda que ja existe
Argumento
Obrigatório
O que é
diagrama
sim
id local ou <projeto>/<id>
id
sim
o id da banda
Opção
Repetível
O que faz
--name <nome>
não
o rotulo da banda
--orientation <o>
não
row ou column
--clear <campo>
sim
apaga um campo; repetivel
--include <seletor>
sim
poe quem o seletor pega nesta banda; repetivel
--include-rm <seletor>
sim
tira um seletor desta banda; repetivel
--match-tag <tag>
sim
entra quem tem esta etiqueta; repetivel
--match-meta <chave=valor>
sim
entra quem tem este metadado; repetivel
--match-level <nivel>
sim
entra quem e deste nivel; repetivel
--match-shape <forma>
sim
entra quem tem esta forma; repetivel
--match-project <id>
sim
entra quem e deste projeto; repetivel
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour group set containers dados --name "Persistência"
cfour group set containers experiencia --include-rm loja-web
cfour group set containers dados --clear match
cfour group rm <diagrama> <id>
tira uma banda do diagrama
Também: remove
Argumento
Obrigatório
O que é
diagrama
sim
id local ou <projeto>/<id>
id
sim
o id da banda
Opção
Repetível
O que faz
--cascade
não
leva junto as bandas aninhadas nela
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel
--no-input
não
nunca pergunta, mesmo num terminal
cfour group rm containers dados
cfour group rm containers dominio --cascade
cfour step
os passos de um fluxo, na ordem em que acontecem
cfour step add <fluxo> <destino>
acrescenta um passo
Argumento
Obrigatório
O que é
fluxo
sim
id local ou <projeto>/<id>
destino
sim
quem recebe a mensagem
Opção
Repetível
O que faz
--from <ref>
não
quem envia; sem isto, herda o destino do passo anterior
--label <texto>
não
o que aparece ao lado da linha
--kind <tipo>
não
o tipo da seta; sem isto, o da seta declarada
--reply <texto>
não
uma resposta curta, tracejada, na linha seguinte
--after <id>
não
entra logo depois deste passo; sem isto, no fim
--modelagem <id>
não
em qual modelagem mexer
--dry-run
não
mostra o patch e nao escreve nada
--file <caminho>
não
força o arquivo de destino, dentro do projeto
--json
não
saida em JSON: o que mudou, ou o erro com codigo estavel