Pular para o conteúdo principal
Versão: 0.1.0-alpha.2

Referência CLI

Referência completa para todos os comandos e flags de linha de comando do Invowk™.

Flags Globais​

Estas flags estão disponíveis para todos os comandos:

FlagCurtaDescrição
--help-hMostrar ajuda para o comando
--interactive-iExecutar comandos em buffer de tela alternativo (modo interativo)
--verbose-vHabilitar saída verbose
--versionMostrar informação de versão

Comandos​

invowk​

O comando raiz. Executar invowk sem argumentos mostra a mensagem de ajuda.

invowk [flags]
invowk [command]

invowk cmd​

Executar comandos definidos em invkfiles.

invowk cmd [flags]
invowk cmd [command-name] [flags] [-- args...]

Flags:

FlagCurtaDescrição
--list-lListar todos os comandos disponíveis
--runtime-rSobrescrever o runtime (deve ser permitido pelo comando)

Flags embutidas por comando:

FlagCurtaDescrição
--env-file-eCarregar variáveis de ambiente de arquivo (repetível)
--env-var-EDefinir variável de ambiente (KEY=VALUE, repetível)
--env-inherit-modeHerdar variáveis do host: none, allow, all
--env-inherit-allowAllowlist de variáveis do host (repetível)
--env-inherit-denyDenylist de variáveis do host (repetível)
--workdir-wSobrescrever diretório de trabalho do comando

Exemplos:

# List all available commands
invowk cmd

# Run a command
invowk cmd build

# Run a nested command
invowk cmd test unit

# Run with a specific runtime
invowk cmd build --invk-runtime container

# Run with arguments
invowk cmd greet -- "World"

# Run with flags
invowk cmd deploy --env production

Descoberta de Comandos:

Comandos são descobertos de (em ordem de prioridade):

  1. Diretório atual (invkfile e módulos)
  2. ~/.invowk/cmds/ (invkfiles e módulos)
  3. Caminhos configurados em search_paths (invkfiles e módulos)

invowk init​

Criar um novo invkfile no diretório atual.

invowk init [flags] [path]

Opcionalmente, passe um nome de arquivo customizado para gravar.

Flags:

FlagCurtaDescrição
--force-fSobrescrever invkfile existente
--template-tTemplate a usar: default, minimal, full

Templates:

  • default - Um template equilibrado com alguns comandos de exemplo
  • minimal - Estrutura mínima de invkfile
  • full - Template abrangente mostrando todas as funcionalidades

Exemplos:

# Create a default invkfile
invowk init

# Create a minimal invkfile
invowk init --template minimal

# Overwrite existing invkfile
invowk init --force

invowk config​

Gerenciar configuração do Invowk.

invowk config [command]

Subcomandos:

invowk config show​

Exibir configuração atual em formato legível.

invowk config show

invowk config dump​

Exibir configuração raw como CUE.

invowk config dump

invowk config path​

Mostrar o caminho do arquivo de configuração.

invowk config path

invowk config init​

Criar um arquivo de configuração padrão.

invowk config init

invowk config set​

Definir um valor de configuração.

invowk config set <key> <value>

Exemplos:

# Set container engine
invowk config set container_engine podman

# Set default runtime
invowk config set default_runtime virtual

# Set nested value
invowk config set ui.color_scheme dark

invowk module​

Gerenciar módulos do invowk (pastas de comandos autocontidas).

invowk module [command]

Subcomandos:

invowk module create​

Criar um novo módulo do invowk.

invowk module create <name> [flags]

Flags:

FlagCurtaDescrição
--path-pDiretório pai do módulo (padrão: diretório atual)
--scriptsCriar um subdiretório scripts/
--module-id-gIdentificador do módulo em invkmod.cue (padrão: nome do módulo)
--description-dDescrição para invkmod.cue

Exemplos:

# Create a module with RDNS naming
invowk module create com.example.mytools

# Override module ID and description
invowk module create mytools --module-id com.example.tools --description "Shared tools"

# Create with scripts directory
invowk module create mytools --scripts

invowk module validate​

Validar um módulo do invowk.

invowk module validate <path> [flags]

Flags:

FlagCurtaDescrição
--deepTambém valida a sintaxe do invkfile

Exemplos:

# Basic validation
invowk module validate ./mymod.invkmod

# Deep validation
invowk module validate ./mymod.invkmod --deep

invowk module list​

Listar todos os módulos descobertos.

invowk module list

invowk module archive​

Criar um arquivo ZIP de um módulo.

invowk module archive <path> [flags]

Flags:

FlagCurtaDescrição
--output-oCaminho do arquivo de saída

invowk module import​

Importar um módulo de um arquivo ZIP ou URL.

invowk module import <source> [flags]

Flags:

FlagCurtaDescrição
--path-pDiretório de saída
--overwriteSobrescrever módulo existente, se presente

invowk module alias​

Gerenciar aliases de módulo para desambiguar colisões.

invowk module alias [command]

invowk module alias set​

invowk module alias set <module-path> <alias>

invowk module alias list​

invowk module alias list

invowk module alias remove​

invowk module alias remove <module-path>

invowk module add​

Resolver uma dependência de módulo e imprimir a entrada requires para invkmod.cue.

invowk module add <git-url> <version> [flags]

Flags:

FlagDescrição
--aliasAlias para o namespace do módulo
--pathSubdiretório dentro do repositório

invowk module remove​

Remover uma dependência de módulo do lock file.

invowk module remove <git-url>

invowk module sync​

Sincronizar dependências de invkmod.cue.

invowk module sync

invowk module update​

Atualizar dependências de módulo para as versões mais recentes compatíveis.

invowk module update [git-url]

invowk module deps​

Listar dependências de módulo resolvidas.

invowk module deps

invowk module vendor​

Fazer vendor de dependências em invk_modules/.

invowk module vendor [module-path]

Flags:

FlagDescrição
--updateForçar re-fetch de todas as dependências
--pruneRemover módulos vendorizados não usados

invowk tui​

Componentes de interface de terminal interativos para shell scripts.

invowk tui [command] [flags]
dica

Componentes TUI funcionam muito bem em scripts de invkfile! Eles oferecem prompts interativos, spinners, file pickers e mais.

Subcomandos:

invowk tui input​

Prompt para entrada de texto em uma linha.

invowk tui input [flags]

Flags:

FlagDescrição
--titleTítulo do prompt
--descriptionDescrição abaixo do título
--placeholderTexto placeholder
--valueValor inicial
--char-limitLimite de caracteres
--widthLargura do campo de entrada
--passwordEsconder entrada (para senhas)
--promptCaractere(s) do prompt antes da entrada

invowk tui write​

Editor de texto multi-linha.

invowk tui write [flags]

Flags:

FlagDescrição
--titleTítulo do editor
--descriptionDescrição abaixo do título
--placeholderTexto placeholder
--valueValor inicial
--char-limitLimite de caracteres
--widthLargura do editor
--heightAltura do editor
--show-line-numbersMostrar números de linha

invowk tui choose​

Selecionar de uma lista de opções.

invowk tui choose [options...] [flags]

Flags:

FlagDescrição
--titleTítulo da seleção
--limitNúmero máximo de seleções (padrão: 1)
--no-limitPermite seleções ilimitadas
--heightAltura da lista

invowk tui confirm​

Prompt de confirmação sim/não.

invowk tui confirm [prompt] [flags]

Flags:

FlagDescrição
--titleTítulo exibido acima do prompt
--defaultValor padrão (true/false)
--affirmativeTexto para opção "sim"
--negativeTexto para opção "não"

invowk tui filter​

Filtrar uma lista de opções com fuzzy matching.

invowk tui filter [options...] [flags]

Opções também podem ser fornecidas via stdin.

Flags:

FlagDescrição
--titleTítulo exibido acima do filtro
--placeholderTexto placeholder
--widthLargura do filtro
--heightAltura da lista
--limitMáximo de seleções (padrão: 1)
--no-limitPermite seleções ilimitadas
--reverseExibe a lista em ordem reversa
--fuzzyHabilita fuzzy matching

invowk tui file​

Seletor de arquivos.

invowk tui file [path] [flags]

Flags:

FlagDescrição
--titleTítulo exibido acima do seletor
--descriptionDescrição abaixo do título
--directoryMostrar apenas diretórios
--fileMostrar apenas arquivos
--hiddenMostrar arquivos ocultos
--heightAltura do seletor
--allowedExtensões permitidas

invowk tui table​

Exibir e selecionar de uma tabela.

invowk tui table [flags]

Lê dados CSV ou TSV de arquivo ou stdin.

Flags:

FlagDescrição
--fileArquivo CSV para exibir
--separatorSeparador de colunas (padrão: ,)
--columnsCabeçalhos das colunas (sobrescreve cabeçalho do arquivo)
--widthsLarguras de coluna
--heightAltura da tabela
--selectableHabilita seleção de linhas

invowk tui spin​

Mostrar um spinner enquanto executa um comando.

invowk tui spin [flags] -- command [args...]

Flags:

FlagDescrição
--titleTítulo do spinner
--typeEstilo do spinner

invowk tui pager​

Scroll por conteúdo.

invowk tui pager [file] [flags]

Lê de arquivo ou stdin.

Flags:

FlagDescrição
--titleTítulo exibido acima do pager
--line-numbersMostrar números de linha
--soft-wrapQuebra suave de linhas longas

invowk tui format​

Formatar texto com markdown, código, emoji ou templates.

invowk tui format [text...] [flags]

Flags:

FlagDescrição
--typeTipo de formatação: markdown, code, emoji, template
--languageLinguagem para highlight de código
--themeTema do Glamour para highlight de código

invowk tui style​

Aplicar estilos ao texto.

invowk tui style [text...] [flags]

Flags:

FlagDescrição
--foregroundCor do texto (hex ou nome)
--backgroundCor do fundo
--boldTexto em negrito
--italicTexto em itálico
--underlineTexto sublinhado
--strikethroughTexto tachado
--faintTexto esmaecido
--blinkTexto piscando
--reverseCores invertidas
--margin-*Margens (esquerda/direita/topo/baixo)
--padding-*Padding (esquerda/direita/topo/baixo)
--widthLargura fixa
--heightAltura fixa
--alignAlinhamento de texto
--borderEstilo da borda

invowk completion​

Gerar scripts de completion para o shell.

invowk completion [shell]

Shells: bash, zsh, fish, powershell

Exemplos:

# Bash
eval "$(invowk completion bash)"

# Zsh
eval "$(invowk completion zsh)"

# Fish
invowk completion fish > ~/.config/fish/completions/invowk.fish

# PowerShell
invowk completion powershell | Out-String | Invoke-Expression

invowk help​

Mostrar ajuda para qualquer comando.

invowk help [command]

Exemplos:

invowk help
invowk help cmd
invowk help config set

Exit Codes​

Invowk termina com:

  • 0 em sucesso
  • 1 em erros de CLI ou runtime
  • O código de saída do comando executado quando um comando ou tui spin falha

Mensagens de Erro​

O Invowk fornece mensagens específicas para ajudar no diagnóstico:

Nenhum Invkfile Encontrado​

Quando nenhum invkfile é descoberto em nenhum local de busca:

# No invkfile found!

We searched for an invkfile but couldn't find one in the expected locations.

## Search locations (in order of precedence):
1. Current directory
2. ~/.invowk/cmds/
3. Paths configured in your config file

## Things you can try:
• Create an invkfile in your current directory:
$ invowk init

• Or specify a different directory:
$ cd /path/to/your/project

Esta mensagem aparece quando:

  • Nenhum invkfile.cue existe no diretório atual
  • Nenhum invkfile existe em ~/.invowk/cmds/
  • Nenhum invkfile existe nos search_paths configurados

Soluções:

  • Execute invowk init para criar um invkfile no diretório atual
  • Navegue para um diretório que contenha um invkfile
  • Adicione locais de invkfile em search_paths na sua configuração

Falha ao Fazer Parse do Invkfile​

Quando um invkfile é encontrado mas contém erros de sintaxe ou configuração inválida:

✗ Failed to parse /path/to/invkfile.cue: invkfile validation failed:
#Invkfile.cmds.0.implementations.0.runtimes.0.name: 3 errors in empty disjunction

# Failed to parse invkfile!

Your invkfile contains syntax errors or invalid configuration.

## Common issues:
- Invalid CUE syntax (missing quotes, braces, etc.)
- Unknown field names
- Invalid values for known fields
- Missing required fields (name, script for commands)

## Things you can try:
- Check the error message above for the specific line/column
- Validate your CUE syntax using the cue command-line tool
- Run with verbose mode for more details:
$ invowk --invk-verbose cmd

Esta mensagem aparece quando:

  • Erros de sintaxe CUE (chaves/aspas faltando, etc.)
  • Nomes de campo ou valores inválidos
  • Falhas de validação do schema (ex.: tipo de runtime inválido)
  • Campos obrigatórios ausentes

Soluções:

  • Verifique a mensagem de erro específica exibida acima do texto de ajuda
  • Valide sua sintaxe CUE: cue vet invkfile.cue
  • Rode com modo verbose: invowk --verbose cmd --list
  • Compare com a referência de schema do invkfile
dica

A mensagem de erro sempre mostra primeiro o erro de parse específico (por exemplo, qual campo falhou na validação), seguido por orientações gerais de troubleshooting.