Skip to main content

A lightweight, stream-native AI agent powered by Timeplus

Project description

PulseBot

Python Version Timeplus Powered GitHub stars GitHub issues GitHub forks

Stream-native AI Agent powered by Timeplus

PulseBot is a lightweight, extensible AI agent framework that uses Timeplus streaming database as its backbone for real-time message routing, observability, and memory storage.

✨ Features

  • Stream-Native Architecture - All communication flows through Timeplus streams
  • Multi-Provider LLM Support - Anthropic Claude, OpenAI, OpenRouter, Ollama, and NVIDIA
  • Vector Memory - Semantic search using embeddings stored in Timeplus
  • SQL-Native Scheduling - Timeplus Tasks replace traditional cron jobs
  • Interactive Workspaces - Build and publish dynamic artifacts and runnable web apps
  • Extensible Skills - Plugin-based tool system with OpenClaw compatibility and ClawHub registry
  • Multi-Channel - Telegram, webchat, with easy extension to Slack/WhatsApp
  • Real-Time Observability - All LLM calls and tool executions logged to streams
  • Production Ready - Docker deployment, async architecture, structured logging

🏗️ Architecture

image

🚀 Quick Start

Prerequisites

  • Python 3.11+
  • Timeplus or Proton

Installation

# Clone repository
git clone https://github.com/timeplus-io/PulseBot.git
cd PulseBot

# Install package
pip install -e .

# Generate default config
pulsebot init

Configuration

Edit config.yaml with your API keys:

agent:
  name: "PulseBot"
  model: "claude-sonnet-4-20250514"  # or use ollama model

providers:
  anthropic:
    api_key: ${ANTHROPIC_API_KEY}
  
  # For local testing with Ollama
  ollama:
    enabled: true
    host: "http://localhost:11434"
    default_model: "llama3"

workspace:
  base_dir: "./workspaces"
  workspace_port: 8001
  internal_api_key: "${WORKSPACE_INTERNAL_KEY}"

Using Ollama (Local Testing)

# Install Ollama (macOS)
brew install ollama

# Pull a model
ollama pull llama3

# Start Ollama server
ollama serve

# Update config.yaml to use Ollama
# Set agent.provider: "ollama" and agent.model: "llama3"

Setup & Run

# Start the agent (streams are initialized automatically on first run)
pulsebot run

# Or start the API server
pulsebot serve

🐳 Docker Deployment

# Set environment variables
export ANTHROPIC_API_KEY=your_key
export TELEGRAM_BOT_TOKEN=your_token

# Start all services
docker-compose up -d

This starts:

  • Timeplus - Streaming database (ports 8123, 3218, 8463)
  • PulseBot Agent - Message processing
  • PulseBot API - REST/WebSocket interface (port 8000)

📖 CLI Commands

Command Description
pulsebot run Start the agent loop
pulsebot serve Start FastAPI server
pulsebot chat Interactive CLI chat
pulsebot init Generate config.yaml
pulsebot task list List scheduled tasks
pulsebot task create --name <n> --prompt <p> --interval <i> Create an interval-based task
pulsebot task create --name <n> --prompt <p> --cron <expr> Create a cron-scheduled task
pulsebot task pause <name> Pause a scheduled task
pulsebot task resume <name> Resume a paused task
pulsebot task delete <name> Delete a scheduled task
pulsebot skill search <query> Search ClawHub registry for skills
pulsebot skill install <slug> Install skill from ClawHub
pulsebot skill list List installed ClawHub skills
pulsebot skill remove <slug> Remove installed skill

🔧 Built-in Skills

Skill Tools Description
file_ops read_file, write_file, list_directory Sandboxed file operations
shell run_command Shell execution with security guards
workspace workspace_create_app, workspace_write_file, ... Create and publish dynamic artifacts and web apps
scheduler create_interval_task, create_cron_task, list_tasks, pause_task, resume_task, delete_task Create and manage recurring tasks backed by Timeplus native Tasks

AgentSkills.io & OpenClaw Support

PulseBot supports the agentskills.io standard and OpenClaw extensions for external skill packages.

OpenClaw adds runtime requirement checking and ClawHub registry integration:

  • Declare required binaries, environment variables, and OS support in SKILL.md
  • Install skills directly from ClawHub with pulsebot skill install <slug>
  • Automatic integrity verification with SHA256 checksums
  • Auto-update support for installed skills

Configure skill directories in config.yaml:

skills:
  skill_dirs:
    - "./skills"
    - "/shared/skills"
  disabled_skills: []

clawhub:
  install_dir: "./skills"    # Default install location
  auto_update: false          # Auto-update on startup

Install from ClawHub:

# Search for skills
pulsebot skill search python

# Install a skill
pulsebot skill install timeplus/sql-guide

# List installed skills
pulsebot skill list

Timeplus Related Skills Install

pulsebot skill install timeplus-sql-guide 
pulsebot skill install timeplus-app-builder 
pulsebot skill install cisco-asa-syslog 

refer to

📡 API Endpoints

Web Chat UI

Access the built-in web chat interface at http://localhost:8000/ after starting the API server.

REST & WebSocket Endpoints

Method Endpoint Description
GET / Web chat UI
GET /health Health check
POST /chat Send message (async)
POST /api/v1/task-trigger Timeplus UDF callback for scheduled tasks
WS /ws/{session_id} Real-time chat (also streams task_notification events)
GET /sessions/{id}/history Get conversation history

🗄️ Timeplus Streams

Stream Purpose
messages All agent communication (user input, agent response, tool calls)
llm_logs LLM call observability (tokens, latency, cost)
tool_logs Tool execution logging (name, arguments, duration, status)
memory Vector-indexed memories with semantic search
events System events, alerts & task_notification broadcasts
task_triggers Audit log of every scheduled task invocation

Scheduled tasks are Timeplus-native TASK objects created by the scheduler skill. Each task runs a Python UDF that POSTs to /api/v1/task-trigger, which the agent processes and fans out to all connected channels via the events stream. See Task Design for details.

🔐 Environment Variables

# Required (one LLM provider)
ANTHROPIC_API_KEY=... # For Claude models
# or
OPENAI_API_KEY=... # For OpenAI models

# Timeplus
TIMEPLUS_HOST=localhost
TIMEPLUS_PASSWORD=...

# ClawHub (for installing skills from registry)
CLAWHUB_AUTH_TOKEN=... # Authentication token for ClawHub skill installation

# Optional
OPENAI_API_KEY=... # Also used for memory embeddings
TELEGRAM_BOT_TOKEN=... # For Telegram channel

📚 Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulsebot-0.5.0.tar.gz (307.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pulsebot-0.5.0-py3-none-any.whl (146.5 kB view details)

Uploaded Python 3

File details

Details for the file pulsebot-0.5.0.tar.gz.

File metadata

  • Download URL: pulsebot-0.5.0.tar.gz
  • Upload date:
  • Size: 307.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for pulsebot-0.5.0.tar.gz
Algorithm Hash digest
SHA256 47e03ca4ae1e52bd9420518c13d38040e11c93f7e0ddd69fa99115c8358a8029
MD5 3f843abadd104bc097a0e542ea5c72f6
BLAKE2b-256 88977637be2b3b81190cbece08fa2e7ae24ad371442b73cf550576b66c05aef8

See more details on using hashes here.

File details

Details for the file pulsebot-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: pulsebot-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 146.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for pulsebot-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 43872ea0aa98d5532c1a6db1972ceb21822e90280ea9a6b38962841ab06db92e
MD5 ecd6676b526708eb3dfa9e0eebbd3202
BLAKE2b-256 f198401f3a889f708a34d25e85fbf79c6839468c8a4ffa3c77ca653aecfebe07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page