Crie um plugin com ação e evento
Antes de começar
Use Node.js para consultar os workspaces e registrar a resposta quando uma ação ou evento executar o plugin.
- Node.js disponível no PATH.
- Herdr 0.9.5 no Linux.
Um plugin do Herdr é um diretório com manifesto e executáveis. Neste exemplo, uma ação consulta os workspaces e grava um registro no diretório de estado fornecido pelo Herdr. O mesmo script responde ao evento de criação de workspace.
Crie o manifesto
Crie uma pasta para o exemplo e escreva o arquivo herdr-plugin.toml:
id = "promovaweb.workspace-log"name = "Registro de workspaces"version = "0.1.0"min_herdr_version = "0.9.5"platforms = ["linux"]
[[actions]]id = "registrar"title = "Registrar workspaces"command = ["node", "index.mjs"]
[[events]]on = "workspace.created"command = ["node", "index.mjs"]Consulte a sessão correta
Escreva este código no arquivo index.mjs na mesma pasta. Ele usa o binário e o socket recebidos do Herdr, inclusive quando a ação ocorre em uma sessão nomeada.
import { execFileSync } from 'node:child_process'import { appendFileSync, mkdirSync } from 'node:fs'import { join } from 'node:path'
const binary = process.env.HERDR_BIN_PATHconst directory = process.env.HERDR_PLUGIN_STATE_DIRif (!binary || !directory) throw new Error('Execute pelo Herdr.')const output = execFileSync(binary, ['workspace', 'list'], { encoding: 'utf8', timeout: 5000})mkdirSync(directory, { recursive: true })appendFileSync(join(directory, 'workspaces.jsonl'), JSON.stringify({ date: new Date().toISOString(), event: process.env.HERDR_PLUGIN_EVENT ?? 'action', response: JSON.parse(output)}) + '\n')O registro inclui nomes e identificadores de workspaces. Guarde-o como informação do seu ambiente. O exemplo é didático e acrescenta uma linha por evento, sem rotação automática do arquivo.
Vincule e execute
Dentro da pasta do plugin, execute:
herdr --session tutorial plugin link "$PWD"herdr --session tutorial plugin action invoke promovaweb.workspace-log.registrarherdr --session tutorial workspace create --cwd "$PWD" --label Eventoherdr --session tutorial plugin log list --plugin promovaweb.workspace-logA chamada da ação retorna antes de o processo terminar. Consulte os logs até verificar succeeded e exit_code: 0. O teste local confirmou esse resultado para a ação e para o evento workspace.created.
Remova o vínculo
herdr plugin unlink promovaweb.workspace-logO comando remove o registro do plugin e preserva os arquivos de desenvolvimento. Plugins vinculados ficam disponíveis para as sessões do mesmo usuário. O teste desta página usou diretórios XDG temporários para manter a instalação pessoal separada.
Confira o resultado
Confira a saída descrita no procedimento.
Fontes e conferência
Ação, evento workspace.created, consulta de logs e remoção do vínculo executados com sucesso. Herdr 0.9.5, Linux x86_64, em 25 de outubro de 2026.
