This is a Paperclip adapter that runs Hermes Agent as a managed employee.
It implements the ServerAdapterModule interface from @paperclipai/adapter-utils.
src/
├── index.ts # Root: type, label, models, agentConfigurationDoc
├── shared/constants.ts # Shared constants (regex, defaults)
├── server/
│ ├── index.ts # Re-exports execute + testEnvironment
│ ├── execute.ts # Core execution (spawn hermes CLI)
│ └── test.ts # Environment checks (CLI, Python, API keys)
├── ui/
│ ├── index.ts # Re-exports
│ ├── parse-stdout.ts # Hermes stdout → TranscriptEntry[]
│ └── build-config.ts # UI form → adapterConfig
└── cli/
├── index.ts # Re-exports
└── format-event.ts # Terminal output formatting
The adapter implements ServerAdapterModule:
execute(ctx)— spawnshermes chat -q "...", returnsAdapterExecutionResulttestEnvironment(ctx)— checks CLI, Python, API keysmodels— list of available LLM modelsagentConfigurationDoc— markdown docs for the config form
npm install
npm run build # tsc → dist/
npm run typecheck # type checking only- Build this adapter:
npm run build - In your Paperclip repo, add this as a local dependency
- Register in
server/src/adapters/registry.ts - Create an agent with
adapterType: "hermes_local" - Trigger a heartbeat and observe logs