@j-o-r/hello-dave
v0.2.5
Published
BETA - ESM toolkit for building AI agents. 'Hello, Dave.' A calm, reliable interface to Grok (xAI), OpenAI, MiniMax and z.ai (GLM) — foolproof and incapable of error (mostly). Putting itself to the fullest possible use.
Readme
@j-o-r/hello-dave

'Hello, Dave.' — A calm, reliable ESM toolkit for building and running AI agents with unified access to Grok (xAI), OpenAI, Kimi, z.ai (GLM), MiniMax, and Ollama.
Requirements
- Node.js >= 20
- At least one provider API key (see Setup)
Install
npm install -g @j-o-r/hello-daveSetup
Agents call LLM providers via API keys read from environment variables. Export the key for the provider your agent uses:
| Provider | API.chat.* | Environment variable |
|-----------------|--------------|---------------------------------------------|
| xAI (Grok) | xai | XAIKEY |
| OpenAI (GPT) | openai | OPENAIKEY |
| Moonshot (Kimi) | kimi | KIMIKEY |
| z.ai (GLM) | zai | ZAIKEY |
| MiniMax | minimax | MINIMAX_API_KEY |
| Ollama | ollama | none for local; OLLAMA_API_KEY for remote |
export KIMIKEY=<your key> # ask_agent, code_agent and several others default to KimiVerify the install:
dave --list-agents # prints the bundled agents (ask_agent, code_agent, grok_agent, ...)A missing key fails fast with an error like Missing KIMIKEY! export KIMIKEY=<KIMI_API_KEY> — export the named variable and retry.
Quick Start
dave --help
dave --list-agents
dave ask_agent
dave code_agent "Refactor lib/Session.js"
echo "Explain this error" | dave ask_agentCore Usage
dave <agent_name> # interactive
dave <agent_name> "your message" # one-shot
echo "message" | dave <agent_name>
dave <agent_name> --info
dave --list-agents
dave --toolsets # list toolsets (--json, or --toolsets --help)Session utilities:
dave --list # list saved sessions
dave --search "keyword" # search session logs
dave --inspect <session-log> # format a session log
dave --clear # clear saved sessionsAgents are *_agent.js files discovered via AgentLauncher from the agents/ directory of the package the CLI belongs to (the @j-o-r/hello-dave package itself when dave is installed globally). You can also pass a direct path, e.g. dave agents/my_agent.js.
Agent Handoffs (Current Multi-Agent Model)
Use the built-in hand_over / load_agent tools for clean in-process delegation to specialists (or self-reset with fresh context).
- Always fresh: target gets only its own system prompt + short task-focused context.
- No history is copied.
- Use
list_agentsfirst when unsure.
This replaced the older WebSocket server/client/swarm/CodeServer model (which has been abandoned).
See docs/creating-agents.md for details.
Creating Agents
dave agent_creator "Create a weather_agent..."
dave agent_creator "Improve code_agent..."Follow the current standard: docs/creating-agents.md
Key pattern:
export default agent;new Agent({ prompt, api, call_name, call_description, ... })- Register tools +
toolset.borrow(API.toolset.generic.handoff)
Documentation
- docs/creating-agents.md — Canonical guide (read this first for agent work).
docs/bin-dave.mddocs/project-overview.mddocs/docs-organization.mddocs/creating-toolsets.mdetc.
Programmatic Usage
import { Agent, API, AgentLauncher } from '@j-o-r/hello-dave';
const agent = new Agent({
prompt: "...",
api: API.chat.xai,
call_name: 'my_agent',
call_description: '...'
});
const launcher = new AgentLauncher();
await launcher.load('code_agent');
await launcher.run();Development
npm install
npm run link-selfLicense
Apache-2.0
Repository: https://codeberg.org/duin/hello-dave
Putting itself to the fullest possible use.
