Documentação

A linha de comando

Requer Solo ou TeamAtualizado 4 de outubro de 2026

mu é o Memoratu no terminal. É um único binário que fala com https://api.memoratu.com por HTTPS e com mais nada, do mesmo jeito que os apps do celular, só que sem tela.

Antes de começar

Requer Solo ou Team

Instalar o mu é gratuito e aberto a qualquer pessoa. Usá-lo com a sua conta do Memoratu exige um plano pago.

A linha de comando é um recurso pago por design. Ao entrar na conta, é criado um token de CLI, e o servidor se recusa a criar um no plano gratuito: ele responde plan_limit_exceeded e informa o plano e o recurso, em vez de apenas dizer não.

O que cada plano inclui →

O que você precisa

  • Um Mac com o Homebrew, para a instalação em uma linha. Apple silicon e Intel são compatíveis.
  • Ou Linux, em arm64 ou amd64: a versão traz um tarball para cada um, com checksums publicados.
  • Uma conta do Memoratu com plano pago, para entrar.

Instale, passo a passo

Seis comandos. Execute-os em ordem, em um terminal.

  1. Instale o mu

    Em um Mac, a partir do nosso tap público do Homebrew:

    brew install subbutgs/memoratu/mu

    O Homebrew adiciona a fórmula, baixa o binário e mostra onde ele foi parar, algo como /opt/homebrew/Cellar/mu/0.1.0.

    No Linux, baixe o tarball da sua arquitetura na versão v0.1.0, confira com o checksums.txt e coloque o mu em algum lugar do seu $PATH.

  2. Confira se funcionou

    Confirme a versão e com qual API esta instalação fala:

    mu --version

    Você deve ver a versão, o commit a partir do qual foi compilado e a URL base:

    mu 0.1.0 (commit 4aef1232, built 2026-10-03T16:50:02Z)
    API: https://api.memoratu.com
  3. Entrar

    Esta etapa requer Solo ou Team

    Esta é a única forma de obter o seu primeiro token: ao entrar na conta, um é criado para você e guardado no Chaveiro do macOS.

    mu auth login

    O mu pede o seu e-mail e depois a sua senha. A senha é sempre digitada no prompt e nunca é aceita como argumento, então ela não vai parar no histórico do seu shell nem na lista de processos.

    Em seguida, ele mostra o nome do token, quando expira (90 dias por padrão, e o valor escolhido é sempre exibido, nunca em silêncio) e as permissões concedidas. Ele não mostra o segredo: já o guardou, então não precisa mostrá-lo a você.

    O token criado é deliberadamente restrito: leitura em projetos, listas e tokens, e leitura, criação, atualização e conclusão em tarefas. Ele não pode criar nem revogar outros tokens. Se um comando posterior for recusado com permission_denied, ele informa a permissão exata que falta, e isso é o comportamento padrão funcionando como planejado.

    Em um plano gratuito, é aqui que você para. O servidor se recusa a criar o token e responde plan_limit_exceeded, informando o plano e o recurso.

  4. Capture sua primeira tarefa

    Este é o comando que importa. Uma linha, sem configuração, sem escolher um projeto antes:

    mu add "call the client back"

    Ela cai na Inbox, a lista permanente que toda conta tem. O mu gera o id para você, na sua máquina, antes de o servidor saber, e mostra tanto o id quanto o identificador legível, mais longo.

    Added to Inbox · call the client back
      id         3f2b1a9c-7e2d-4b11-9c4a-6a1f2e9d7c3b
      identifier mem:todo:...:3f2b1a9c-7e2d-4b11-9c4a-6a1f2e9d7c3b
  5. Veja o que você tem

    Liste as suas tarefas:

    mu todo list

    As tarefas concluídas ficam ocultas por padrão; as abertas, canceladas e movidas continuam aparecendo. Adicione --all para ver todos os status, ou --status done só para as concluídas. Se você está contando ou auditando, em vez de ver o que falta fazer, use --all.

  6. Marque como concluída

    Passe o id, ou apenas os primeiros caracteres dele, no estilo do git:

    mu todo done 3f2b1a9c

    Um prefixo curto e único funciona em qualquer lugar onde um id é aceito. Menos de seis caracteres é recusado de cara, e um prefixo que corresponde a mais de uma tarefa é recusado com todos os candidatos listados, sem adivinhar.

    Esse é o ciclo todo: capturar, listar, concluir. Tudo o que vem a seguir é detalhe.

Os comandos

Um resumo legível. mu help <command> é sempre a referência para uma opção: ele é gerado a partir da própria árvore de comandos, então não pode ficar fora de sincronia com a ferramenta.

ComandoO que faz
mu add "<title>"Captura rápida. Cai na Inbox.
mu todo listLista as tarefas. Oculta as concluídas, a menos que você passe --all.
mu todo get <id>Mostra uma tarefa por completo.
mu todo done <id>Marca como concluída.
mu todo reopen <id>Reabre a tarefa. O horário de conclusão original é mantido, não apagado.
mu todo rm <id>Exclui uma tarefa.
mu project add "<name>"Cria um projeto, o nível acima das listas.
mu project listLista os projetos.
mu project rm <id>Exclui um projeto e tudo o que há nele. Não dá para desfazer.
mu list add "<name>"Cria uma lista, dentro de um projeto ou avulsa.
mu list listLista as listas. Um * marca a Inbox.
mu list rm <id>Exclui uma lista. Uma lista que não esteja vazia exige --delete-todos ou --move-to.
mu auth loginEntra na conta e cria o token deste perfil.
mu auth statusQuem você é, qual conta e quais permissões. mu whoami é o mesmo comando.
mu auth logoutRevoga o token deste perfil no servidor e depois o remove localmente.
mu token listOs tokens desta conta, nunca um segredo. Os revogados ficam ocultos, a menos que você passe --all.
mu token createCria um token. O segredo é mostrado uma única vez.
mu token revoke <id>Revoga um token imediatamente.
mu helpTodos os comandos. mu help <command> mostra as opções e os exemplos de um comando.
mu exit-codesImprime a tabela de códigos de saída.

Excluir coisas

mu project rm, mu list rm, mu todo rm e mu token revoke aceitam --dry-run, que mostra o que aconteceria sem alterar nada, e --yes, que pula a confirmação. Sem --yes e sem um terminal para perguntar, eles se recusam em vez de adivinhar.

mu project rm também mostra uma estimativa do que será excluído antes de perguntar, e as contagens reais depois, avisando se as duas diferirem.

mu project rm 7c9e6679-7425-40de-944b-e07fc1f90ae7 --dry-run

Para scripts e agentes de IA

Um agente que opera um terminal é um usuário de primeira classe do Memoratu, por design e não por acaso.

Use sempre --output json

Todos os comandos o aceitam, e ele devolve o mesmo formato que o próprio servidor, em vez de um segundo vocabulário inventado para a CLI.

mu todo list --output json

Ramifique pelo error.code, nunca pelo error.message: a mensagem é texto em inglês para uma pessoa e pode ser reescrita a qualquer momento. O código é o contrato.

{"error": {"code": "plan_limit_exceeded", "message": "...", "detail": {"limit": "max_todos_per_list", "current": 50, "allowed": 50}}}

detail informa o que você precisa para agir: qual permissão falta, qual limite foi atingido, quanto esperar antes de tentar de novo. Um código que começa com cli_ significa que o próprio mu recusou antes de qualquer requisição sair da sua máquina, e nunca é um dos códigos do servidor.

Códigos de saída

Ramifique por estes códigos, e não pelo texto do stderr. mu exit-codes imprime a mesma tabela a partir da própria ferramenta.

CódigoSignificadoTentar de novo?
0Sucesso—
1O servidor recusou: validação, permissão, não encontrado, conflito, limite do plano, limite de taxa ou um simples 500Consulte error.code. server_error e rate_limited geralmente sim, com espera crescente; os demais não
2Você usou o comando de forma errada. Decidido antes de qualquer chamada de redeNão: vai falhar do mesmo jeito
3Não foi possível alcançar o servidor: DNS, recusa, conexão reiniciada, TLS, tempo esgotadoSim, com espera crescente
4Não autenticado: sem token, ou o servidor informou issoNão: corrija primeiro as credenciais

Credenciais, para algo sem chaveiro

Defina MEMORATU_TOKEN com um segredo já criado. Todos os comandos o verificam antes de tocar em qualquer chaveiro, e esse é o caminho suportado para CI e para um agente que roda onde não há chaveiro próprio.

export MEMORATU_TOKEN=mem_live_...

Use mu token create para obter um segredo que você possa colar em outro lugar: é exatamente para isso que ele serve, e mostra o segredo uma única vez. O mu auth login deliberadamente não faz isso, porque já guardou o que criou.

Um agente não consegue concluir o mu auth login sozinho. Os prompts exigem uma entrada padrão equivalente à de uma pessoa em um terminal real. Se o mu terminar com 4 e você não tiver um token para definir, é a hora de pedir a uma pessoa: não há atalho, e isso é uma escolha deliberada, não uma lacuna.

Duas coisas a saber antes de contar qualquer coisa

  • mu todo list oculta done, e mu token list oculta os tokens revogados. Os dois filtros se aplicam igualmente em --output json: não é uma diferença de apresentação. Passe --all quando estiver auditando, em vez de decidir o que fazer.
  • Todo comando de listagem pagina. --limit e --offset entram; limit, offset e total voltam junto com os itens. Nenhum endpoint devolve um conjunto sem limite.

Perfis e uma segunda máquina

Um Mac, várias contas, cada uma bem separada.

mu auth login --profile work
mu todo list --profile work

Cada perfil tem a sua própria entrada em ~/.memoratu/config (a URL base e o formato de saída padrão, nunca um segredo) e o seu próprio item no Chaveiro. --profile funciona em qualquer ponto da linha de comando, antes ou depois do próprio comando.

Entrar de novo no mesmo perfil revoga o token que estava no espaço desse perfil, citado pelo id na confirmação, e nada mais. Um token de outra máquina, ou de outro perfil nesta, fica em seu próprio espaço e nunca é tocado.

Para reutilizar as mesmas credenciais em uma segunda máquina, mu auth login --show-secret as mostra. Para usar um token já criado, --with-token lê um a partir de um prompt ou de um pipe:

echo "$MY_TOKEN" | mu auth login --with-token