Skip to content
View openvesper's full-sized avatar

Block or report openvesper

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
openvesper/README.md

Header

Typing SVG


Version TypeScript Node.js License ZDR PRs Welcome


Stars Forks Issues PRs Last Commit Repo Size


Providers Agents Plugins Integrations CLI Commands Docs Tools Tests


 ██████╗ ██████╗ ███████╗███╗   ██╗██╗   ██╗███████╗███████╗██████╗ ███████╗██████╗
██╔═══██╗██╔══██╗██╔════╝████╗  ██║██║   ██║██╔════╝██╔════╝██╔══██╗██╔════╝██╔══██╗
██║   ██║██████╔╝█████╗  ██╔██╗ ██║██║   ██║█████╗  ███████╗██████╔╝█████╗  ██████╔╝
██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║╚██╗ ██╔╝██╔══╝  ╚════██║██╔═══╝ ██╔══╝  ██╔══██╗
╚██████╔╝██║     ███████╗██║ ╚████║ ╚████╔╝ ███████╗███████║██║     ███████╗██║  ██║
 ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝  ╚═══╝  ╚══════╝╚══════╝╚═╝     ╚══════╝╚═╝  ╚═╝
                                                                          🌒 local-first

OpenVesper is a local-first AI agent framework. You bring your own LLM (Anthropic, OpenAI, Groq, Gemini, DeepSeek, Ollama, etc.) and your own keys. The framework handles agent personas, tool execution, multi-source skills, persistent memory, scheduling, and chat-channel delivery — all on your machine.

🌐 Website · 📦 Install · 🤖 Agents · 💡 Examples · ⚙️ Config · 📚 Docs


🧰 Tech Stack

Skills


🤖 Powered By Any of These LLMs

LLMs

+ 11 more: Groq, DeepSeek, Mistral, OpenRouter, Together, Perplexity, Fireworks, Nebius, DeepInfra, xAI Grok, LM Studio


📖 Table of Contents


🌒 Why OpenVesper

Comparison

Most AI agent frameworks are wrappers that send your data through their servers. OpenVesper is the opposite.

Feature Typical AI Framework OpenVesper
📁 Where state lives Their cloud Your disk (~/.openvesper/)
🔄 Runtime Library you import Persistent gateway daemon
🧠 LLM choice Locked to one vendor 15 providers, swap any time
🤖 Agent definition Python/TS code Plain markdown personas
📊 Telemetry Always-on None. Zero. Never.
💬 Channels DIY Telegram, Slack, Discord, Email, WS built-in
⏰ Cron scheduling DIY Built-in heartbeats + webhooks
💰 Crypto-native tools Add yourself 22 crypto plugins out of the box

🎁 What's in the Box

🧠 15 LLM Providers

Anthropic · OpenAI · Gemini · Groq · DeepSeek · Mistral · Together · OpenRouter · Fireworks · Nebius · DeepInfra · xAI · Perplexity · Ollama · LM Studio

🤖 26 Specialist Agents

All defined as plain markdown personas. Crypto hunters, code reviewers, content writers, fitness coaches, smart home controllers — see /docs/agents.

🔌 52 Plugins · 119 Tools

Crypto · DeFi · Solana · GitHub · Telegram · Slack · Weather · Fitness · Gaming · E-commerce · DNS · Database · Browser automation — and 40+ more.

🎯 Multi-source Skill System

6 precedence levels (workspace > project-agent > personal-agent > managed > bundled > extra) with gating (env/bin/config/OS) and per-agent allowlists.

💬 5 Channels

CLI · Telegram · Slack · Discord · WebSocket — all bidirectional. Talk to your agent from anywhere.

⏰ Cron + Webhook Scheduler

Agents run on a timer or respond to external events. Daily summaries to Telegram, PR review on GitHub push, alert when a wallet moves.

🔐 OS Keychain Integration

macOS Keychain · libsecret · kwallet · 1Password CLI. Your API keys never have to sit in plaintext .env files.

🛡 Approval Queue + Audit Log

Review every tool call before execution. Full audit trail in ~/.openvesper/audit/ for every action.

🚫 What It Is NOT

⚠️ Not a hosted SaaS. There is no openvesper.com account. There are no OpenVesper servers receiving your data.

⚠️ Not a wallet. The framework never asks for seed phrases or private keys.

⚠️ Not a trading bot. Crypto plugins are read-only — they query data, they don't sign transactions.

⚠️ Not locked to one model. Switch from Claude to GPT to a local Ollama model with one env var.


🏗 Architecture

Architecture

                    ┌─────────────────────────────┐
                    │       You — the user        │
                    │  (CLI · Telegram · Slack)   │
                    └──────────────┬──────────────┘
                                   │
                                   ▼
                    ┌─────────────────────────────┐
                    │   OpenVesper Gateway        │
                    │   127.0.0.1:18789 (loopback)│
                    │                             │
                    │  ┌───────────────────────┐  │
                    │  │  Agent Router         │  │
                    │  │  Tool Dispatcher      │  │
                    │  │  Session Lanes        │  │
                    │  │  Approval Queue       │  │
                    │  │  Cron Scheduler       │  │
                    │  │  Memory Manager       │  │
                    │  └──────────┬────────────┘  │
                    └─────────────┼───────────────┘
                                  │
              ┌───────────────────┼───────────────────┐
              ▼                   ▼                   ▼
       ┌─────────────┐    ┌─────────────┐    ┌──────────────┐
       │   LLM API   │    │   Plugins   │    │ ~/.openvesper│
       │ (your key)  │    │ (52 built-in)│   │  (your state)│
       └─────────────┘    └─────────────┘    └──────────────┘
       Anthropic           bagsfm, github,    sessions
       OpenAI              telegram, weather,  audit logs
       Gemini              22 crypto plugins,  OAuth tokens
       Groq                productivity tools  cron jobs
       (+ 11 more)         + your own          .env

🔄 The Agent Loop

User Query (any channel)
      │
      ▼
┌─────────────────────────────────────┐
│  Gateway receives request           │
│  → Resolves session (or creates)    │
│  → Routes to correct agent          │
│  → Loads eligible skills (gated)    │
└──────────────┬──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│  LLM call (with tools + skills)     │
│  Model decides which tools to run   │
└──────────────┬──────────────────────┘
               │  tool_use
               ▼
┌─────────────────────────────────────┐
│  Tool dispatcher executes           │
│  → Approval queue (if needed)       │
│  → Audit log entry                  │
│  → Permission check                 │
└──────────────┬──────────────────────┘
               │  results
               ▼
┌─────────────────────────────────────┐
│  Loop back to LLM until done        │
│  → Persist session                  │
│  → Emit response to channel         │
└─────────────────────────────────────┘

📦 Installation

Install

🎯 Prerequisites

Requirement Version Notes
Node 18+ nodejs.orgor use the installer's auto-install
pnpm 9+ npm install -g pnpm
Key Any of 15 providers (Anthropic, OpenAI, Groq, Gemini...)

🚀 Method 1 — One-line Installer (Recommended)

🐧 macOS / Linux

curl -fsSL https://raw.githubusercontent.com/openvesper/openvesper/main/scripts/install.sh | bash

🪟 Windows (PowerShell)

iwr -useb https://raw.githubusercontent.com/openvesper/openvesper/main/scripts/install.ps1 | iex

The installer does all of this for you:

Step What Where
1️⃣ Detect / auto-install Node.js via fnm (Unix) or winget/MSI (Windows)
2️⃣ Detect / auto-install pnpm via npm install -g pnpm
3️⃣ Clone the repo ~/.local/share/openvesper or %LOCALAPPDATA%\openvesper
4️⃣ Build all packages pnpm -r build
5️⃣ Install vesper shim to PATH ~/.local/bin/vesper or %LOCALAPPDATA%\Microsoft\WindowsApps\vesper.cmd
6️⃣ Run guided setup wizard vesper onboard

🔧 Method 2 — Manual Install

git clone https://github.com/openvesper/openvesper
cd openvesper

pnpm install --ignore-scripts
pnpm -r build

# Guided setup
node apps/cli/dist/index.js onboard

🐳 Method 3 — Docker

docker run -d \
  --name openvesper \
  -p 127.0.0.1:18789:18789 \
  -v "$HOME/.openvesper:/home/vesper/.openvesper" \
  -e ANTHROPIC_API_KEY=sk-ant-... \
  ghcr.io/openvesper/openvesper:latest

Docker Pulls

Multi-arch: linux/amd64 + linux/arm64

Or with docker-compose:

git clone https://github.com/openvesper/openvesper
cd openvesper
cp .env.example .env  # add your keys
docker-compose up -d

⚡ Quick Start

Typing SVG

After install, run the wizard:

vesper onboard

The wizard asks 5 questions:

# Question Default
1️⃣ Workspace location ~/.openvesper
2️⃣ LLM provider (15 choices) Anthropic
3️⃣ API key (stored in ~/.openvesper/.env mode 0600)
4️⃣ Default agent (auto / bags-hunter / code-reviewer...) auto
5️⃣ Send a test message Y

Then ask your first question:

vesper -q "What's the price of BTC right now?"

Or open an interactive REPL:

vesper repl

Start the gateway as a daemon (for Telegram / Slack / cron):

vesper gateway start -d        # detached / background
vesper gateway install-daemon  # auto-start at boot (systemd / launchd)

Check health:

vesper doctor

🧠 LLM Providers

Providers

OpenVesper supports 15 providers. Set one key, you're done. Set multiple, switch with --provider flag.

Provider Best Model Free Tier Notes
Anthropic Anthropic claude-opus-4-5 Best tool use, recommended
OpenAI OpenAI gpt-4o, o1, o3 Universal compatibility
Gemini Google Gemini gemini-2.5-pro ✅ 15 RPM Free tier, fast
Groq Groq llama-3.3-70b Ultra-fast inference
DeepSeek DeepSeek v3 / r1 Cheap, good reasoning
xAI xAI Grok grok-4 Real-time web access
Mistral Mistral mistral-large EU-hosted
OpenRouter OpenRouter 100+ models Pay-as-you-go Unified gateway
Together Together Open-source Hosted Llama / Mixtral
Perplexity Perplexity sonar Search-augmented
Fireworks Fireworks Llama / Mixtral Fast serverless
Nebius Nebius OpenAI-compat Generous free tier
DeepInfra DeepInfra Open-source Affordable
Ollama Ollama llama3.2, mistral ✅ 100% local Offline-capable
LM Studio LM Studio Any GGUF ✅ Local Local GUI
# Switch providers per-query
vesper -q "BTC price" --provider groq --model llama-3.3-70b-versatile

# Or set default in ~/.openvesper/.env
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...

🤖 Agents

Agents

OpenVesper ships with 26 specialist agents, each defined as a markdown persona in .agents/<mode>/. Use vesper -a <mode> to invoke one directly.

💰 Crypto / Web3 (8)

🎒 bags-hunter

Bags.fm Solana memecoin tracking + scoring

🚀 pumpfun-hunter

Pump.fun bonding curve analysis + holder scans

🐸 base-hunter

Base chain memecoin specialist

🎁 airdrop-hunter

Multi-chain airdrop tracking + eligibility

🖼 nft-analyst

NFT collection floor, holders, rarity

🏦 defi-strategist

DeFi yields, TVL, liquidity analysis

📊 quant-analyst

TA, indicators, backtests

📈 investment-researcher

Falsifiable theses, DD, market research

💻 Development (5)

🔬 code-reviewer

PR review, code quality, bug detection

🐙 github-pm

PR triage, issue management, repo health

🛠 solana-dev-coach

Anchor, IDL, dApp helper

🛡 security-reviewer

Code + token security audit

🧪 tdd-coach

Test-driven development guidance

🌐 General (13)

🛸 auto
Picks tools automatically
content-writer
Posts, articles, marketing
🐦 social-strategist
Twitter/X trends + strategy
📋 productivity-coach
Calendar, tasks, email
📐 data-analyst
SQL, CSV, charts
legal-assistant
Contracts, legal docs
🗣 language-tutor
Language learning partner
🌍 travel-planner
Day-by-day itineraries
🍳 cooking-coach
Recipes, techniques
🎮 gaming-companion
Steam, Twitch, stats
💪 fitness-coach
Strava, exercise DB
🏠 smart-home-controller
Home Assistant
📰 news-curator
Daily news digests

✍️ Defining Your Own Agent

Drop a markdown file at .agents/<your-mode>/manifest.md:

---
mode: my-agent
icon: 🦅
name: My Custom Agent
description: Does my specific thing
tools: ["web_search", "github_repo", "*"]
---

You are a helpful assistant specialized in <your domain>.
Be concise and direct.

Run it: vesper -a my-agent -q "your question".


🔌 Plugins

Plugins

52 built-in plugins provide tools the agent can call.

🔍 Click to expand the full plugin list (52 total)

💰 Crypto & Web3 (22)

bagsfm · pumpfun · bonkfun · base-meme · solana · solana-dev · kamino · drift · aerodrome · jupiter · security-goplus · rugcheck · defi · helius · birdeye · whale-alert · airdrop · farcaster · derivatives · memescan · onchain · crypto

📋 Productivity (5)

notion · github · gcal · research · news

💬 Channels (5)

telegram · slack · discord · email · farcaster

✨ Lifestyle (8)

weather · maps · translate · banking · fitness · gaming · shopify · package-tracking

🎨 Media (4)

spotify · youtube · image-gen · voice

⚙️ Dev Tools (6)

filesystem · shell · code-exec · browser · database · dns

🔧 Automation (2)

cron · webhooks

🛠 Meta (1)

skill-workshop — agents propose new skills mid-conversation

🏗 Authoring Your Own Plugin

vesper plugin scaffold weather
# Creates ./weather/ with package.json, tsconfig.json, src/index.ts
import { definePlugin, defineTool, inputSchema } from "@openvesper/plugin-sdk";

export default definePlugin({
  name: "@your-org/plugin-weather",
  version: "0.1.0",
  tools: [
    defineTool({
      name: "weather_get",
      description: "Get current weather for a city",
      inputSchema: inputSchema(
        { city: { type: "string" } },
        ["city"]
      ),
      handler: async ({ city }) => {
        const data = await fetch(`https://api.open-meteo.com/...`);
        return { success: true, data };
      },
    }),
  ],
});

Then pnpm install && pnpm run build, and the agent picks it up automatically.


🎯 Skills System

Skills

Skills are markdown instruction snippets that agents load on demand. v1.16.0 introduces a multi-source loader with strict precedence:

1. <workspace>/skills/              ← highest priority (your project)
2. <workspace>/.agents/skills/      ← project-agent specific
3. ~/.agents/skills/                ← your personal skills
4. ~/.openvesper/skills/            ← managed (vesper skills install)
5. (bundled with install)
6. config.skills.load.extraDirs     ← lowest priority

Same name in multiple sources? The higher source wins.

🚪 Skill Gating

A skill can declare requirements that filter it out at load time:

---
name: image-lab
description: Generate images with Gemini
metadata:
  openvesper:
    requires:
      env: ["GEMINI_API_KEY"]
      bins: ["uv"]
    os: ["darwin", "linux"]
---

When the user asks for an image, use the Gemini image API...

Without the env var? The skill is hidden — agent doesn't even see it. No silent failures.

📥 Installing Skills

# From GitHub
vesper skills install git:owner/repo
vesper skills install git:owner/repo@v1.2.0

# From local directory
vesper skills install ./my-skill

# Globally (~/.openvesper/skills)
vesper skills install ./my-skill --global

# List with source + gating status
vesper skills list
vesper skills list --all      # include gated/filtered
vesper skills info gif-attribution
vesper skills sources         # show all 6 source dirs

🎚 Per-agent Skill Allowlists

In openvesper.json:

{
  agents: {
    defaults: { skills: ["github", "weather"] },
    list: [
      { id: "writer" },                              // inherits defaults
      { id: "researcher", skills: ["docs-search"] }, // replaces (no merge)
      { id: "locked", skills: [] },                  // no skills at all
    ],
  },
}

💬 Channels

Talk to your agent from anywhere. All channels go through the same gateway.

Channel Setup Direction
💻 CLI None Both
✈️ Telegram Bot token Both (DMs + groups)
💼 Slack App + webhook Both
🎮 Discord Bot token Both
📧 Email Gmail OAuth or IMAP Both
🌐 WebSocket Built into gateway Both

🔐 DM Pairing

When an unknown user DMs your bot, the gateway issues a 6-character pairing code:

Unknown user → "hey"
Bot          → "Hi! I'm gated. Ask the operator to approve code: A3B7K2"
You (CLI)    → vesper pairing approve telegram A3B7K2
Bot          → "✓ Approved. You're in."

No more open bots that anyone can spam.


⚙️ Configuration

All config lives in ~/.openvesper/:

~/.openvesper/
├── .env                  # API keys (mode 0600)
├── config.json           # General settings
├── openvesper.json       # Agent + skill allowlists
├── sessions/             # Per-session state
├── audit/                # Tool call audit log
├── tokens/               # OAuth tokens
├── pairings.json         # Channel pairing state
├── skills/               # Managed skills (vesper skills install)
└── skills-registry.json  # Skill install registry

🔑 .env — API Keys

# Required: at least one LLM provider
ANTHROPIC_API_KEY=sk-ant-api03-...
OPENAI_API_KEY=sk-...
GROQ_API_KEY=gsk_...
GEMINI_API_KEY=...

# Optional: channels
TELEGRAM_BOT_TOKEN=
SLACK_BOT_TOKEN=
DISCORD_BOT_TOKEN=

# Optional: extra services
GITHUB_TOKEN=
HELIUS_API_KEY=

🔐 OS Keychain (opt-in)

Don't want plaintext .env? Use your OS keychain:

vesper secret backend         # detect: macOS Keychain / libsecret / kwallet / 1Password
vesper secret set ANTHROPIC_API_KEY
vesper secret list
vesper secret rm ANTHROPIC_API_KEY

📋 CLI Reference

📌 Core Commands
Command Purpose
vesper -q "<query>" One-shot question
vesper repl Interactive prompt with slash commands
vesper onboard 5-step setup wizard
vesper doctor 13-check health diagnostic
vesper monitor Live TUI dashboard
vesper init <template> Quick-start (crypto-watcher / code-reviewer / blog-writer)
🤖 Agents & Plugins
Command Purpose
vesper -a <mode> -q "<q>" Run specific agent
vesper --list-agents All 26 agents
vesper --list-providers All 15 LLM providers
vesper --list-tools Every tool from every plugin
vesper plugin scaffold <name> Generate plugin skeleton
vesper plugin list All 52 bundled plugins
🎯 Skills
Command Purpose
vesper skills list [--all] Eligible skills with source
vesper skills info <name> Details + gating status
vesper skills sources All 6 source dirs
vesper skills install <src> From git / local path
vesper skills update <name> Re-fetch git-installed skill
vesper skills uninstall <name> Remove
🔄 Gateway & Daemon
Command Purpose
vesper gateway start [-d] Start gateway (foreground or detached)
vesper gateway stop Stop gateway
vesper gateway status Health check
vesper gateway install-daemon systemd / launchd / Windows scheduled task
vesper gateway logs Tail audit log
♻️ Lifecycle
Command Purpose
vesper update Pull latest + rebuild (git-installed only)
vesper update --channel dev Switch to dev channel
vesper uninstall [--purge] Remove install (--purge also wipes workspace)
vesper migrate Apply workspace schema migrations
🔐 Pairing & Secrets
Command Purpose
vesper pairing list Pending channel pairings
vesper pairing approve <channel> <code> Approve a pairing code
vesper pairing deny <channel> <code> Reject
vesper secret <backend|set|get|rm> OS keychain integration
⏰ Cron & Webhooks
Command Purpose
vesper cron list All scheduled jobs
vesper cron add <job> Add cron job
vesper cron remove <id> Remove

💡 Examples

Examples

🎒 Example 1 — Crypto Deep Dive

vesper -a bags-hunter -q "Top 5 Solana memecoins by 24h volume, score each"
  ⚡ bagsfm_top_movers (limit=5, sortBy=volume)
  ✓ bagsfm_top_movers — 5 tokens returned

  ⚡ bagsfm_score_token (mint=...) × 5
  ✓ bagsfm_score_token — 5 scores computed

  ⚡ security_goplus_check × 5
  ✓ security_goplus_check — 5 rugcheck results

──────────────────────────────────────────────────
🌒 OpenVesper ›

## Top 5 Solana Memecoins (24h Volume)

| Rank | Token  | Volume | Score | Rug Risk |
|------|--------|--------|-------|----------|
| 1    | $WIF   | $42M   | 82/100| 🟢 Low   |
| 2    | $BONK  | $31M   | 76/100| 🟢 Low   |
| 3    | $PEPE  | $18M   | 71/100| 🟡 Med   |
| 4    | $POPCAT| $14M   | 68/100| 🟢 Low   |
| 5    | $MEW   | $11M   | 64/100| 🟡 Med   |

Top pick by score: $WIF — large holder distribution,
established team, liquidity locked.

⚠ Not financial advice. DYOR.

🔬 Example 2 — GitHub PR Review

vesper -a code-reviewer -q "Review PR #42 on openvesper/openvesper"
  ⚡ github_pr_details (repo=openvesper/openvesper, pr=42)
  ⚡ github_pr_diff (repo=openvesper/openvesper, pr=42)
  ⚡ github_repo_conventions (repo=openvesper/openvesper)

──────────────────────────────────────────────────
🌒 OpenVesper ›

## PR #42 — "Add Vercel deployment config"

### ✓ Looks good
- Workspace install command correctly uses --ignore-scripts
- Output directory matches Next.js convention

### ⚠ Concerns
- vercel.json should use installCommand not buildCommand
- Missing framework: "nextjs" field

Verdict: 🟡 Request changes (small)

⏰ Example 3 — Cron-based Daily Summary

# ~/.openvesper/cron.yaml
jobs:
  - name: daily-sol-summary
    schedule: "0 9 * * *"   # 09:00 every day
    agent: defi-strategist
    prompt: |
      Daily Solana ecosystem summary:
      - SOL price action vs ETH/BTC
      - Top 3 protocols by 24h TVL change
      - Notable token launches in last 24h
      Send to Telegram chat 123456789. Keep it short.
    channels:
      - telegram:123456789
vesper cron add ./daily-sol-summary.yaml
vesper gateway install-daemon

Now every day at 09:00 you get a Telegram message with the summary.


🔐 Privacy & Security

Security

OpenVesper is built on three commitments — all enforced in code, not just documented.

1️⃣ Zero Data Retention

  • No telemetry. Grep returns zero.
  • No phone-home. Gateway calls only your LLM and tools you trigger.
  • No third-party tracking. No GA, no Sentry, no PostHog.

2️⃣ Loopback by Default

  • Gateway binds to 127.0.0.1:18789 only
  • External access requires explicit OPENVESPER_GATEWAY_HOST=0.0.0.0
  • Channels connect outbound to provider APIs — never inbound

3️⃣ No Wallet Keys

  • Never asks for seed phrases or private keys
  • Crypto plugins are read-only
  • Custom signing plugin? You handle the keys (use vesper secret)

🛡 File Permissions

  • All workspace files: mode 0600 (owner read/write only)
  • All workspace dirs: mode 0700
  • Verified by vesper doctor health check

📜 Audit Log

Every tool call is logged to ~/.openvesper/audit/<date>.jsonl:

{"ts":"2026-05-24T11:23:45Z","session":"abc","agent":"bags-hunter","tool":"bagsfm_score_token","input":{"mint":"..."},"approved":true,"result":"success"}

See SECURITY.md for the full security model.


🗂 Project Structure

openvesper/
│
├── apps/
│   ├── cli/                       ← vesper CLI binary
│   ├── gateway/                   ← Persistent daemon (127.0.0.1:18789)
│   ├── telegram-bot/              ← Telegram channel adapter
│   ├── website/                   ← Next.js docs site (openvesper.com)
│   └── vscode-extension/          ← VSCode integration
│
├── packages/
│   ├── core/                      ← Runtime, types, providers, skill loader
│   ├── plugin-sdk/                ← definePlugin / defineTool helpers
│   └── plugins/                   ← 52 bundled plugins
│       ├── bagsfm/                ← Bags.fm memecoin tracking
│       ├── pumpfun/               ← Pump.fun analysis
│       ├── github/                ← GitHub API integration
│       ├── telegram/              ← Telegram channel tools
│       ├── skill-workshop/        ← Propose/approve new skills
│       └── ... (47 more)
│
├── .agents/                       ← 26 markdown agent personas
├── scripts/
│   ├── install.sh                 ← One-line Unix installer
│   ├── install.ps1                ← Windows PowerShell installer
│   └── publish-packages.sh        ← npm publish helper
├── test/
│   └── integration.test.ts        ← 18 vitest tests
├── .github/workflows/
│   ├── build.yml                  ← CI: build + test on every push
│   └── docker.yml                 ← Multi-arch GHCR publish
├── Dockerfile                     ← Multi-stage production image
├── docker-compose.yml
├── CHANGELOG.md
├── VISION.md
├── SECURITY.md
└── README.md                      ← You are here

❓ FAQ

Do I need all 15 LLM provider keys?
No, just one. Anthropic and OpenAI work best for tool-heavy agents. If you want free, use Groq or Gemini.
What does it cost?
The framework is free (MIT). LLM costs vary:
  • Claude Sonnet: ~$0.003 / 1K in + $0.015 / 1K out (~$0.01–0.05 per query)
  • Groq / Gemini free tier: $0 with rate limits
  • Local Ollama: $0, runs on your hardware
Can I use it for trading?
The framework is for analysis. Crypto plugins are read-only — they don't sign transactions. You can write your own signing plugin, but key handling is your responsibility.
Does it work offline?
Yes — use Ollama or LM Studio as the provider. Some plugins need internet, but the agent loop runs locally.
How is this different from LangChain?
LangChain is a library you import into your code. OpenVesper is a persistent daemon with channels, scheduling, and approval queues built in. See /docs/comparison for a detailed table.
Will my data go anywhere?
  • Your prompts go to your chosen LLM provider
  • Tool calls go to the APIs they query (Binance, GitHub, etc.)
  • Nothing goes to OpenVesper servers (there are none)
  • Memory is stored locally in ~/.openvesper/
Can I run multiple agents at once?
Yes. The gateway routes per-session, so one user can have multiple parallel agent conversations. Telegram + CLI + Slack can all be active simultaneously.
Windows support?
Yes. PowerShell installer, native vesper.cmd shim, daemon via Task Scheduler. WSL2 also works.
How do I add a new LLM provider?
Implement the LLMProvider interface in packages/core/src/providers/. ~100 lines of code. PR welcome.
Is the workspace encrypted?
Files are mode 0600 (POSIX). For at-rest encryption, use OS keychain (vesper secret) for API keys or full-disk encryption (FileVault / LUKS / BitLocker).

🗺 Roadmap

Status Item Target
✅ Done Skills v2 multi-source loader v1.16.0
✅ Done Skill Workshop plugin v1.16.0
✅ Done Windows + Docker installers v1.16.0
✅ Done Multi-arch Docker on GHCR v1.16.0
🚧 In Progress npm publish (@openvesper/cli) v1.17.0
🎯 Planned More chat channels (Matrix, Signal) v1.18.0
🎯 Planned i18n CLI messages (TR, EN, ES, JA) v1.18.0
🤔 Considering TUI dashboard panels v1.19+
🤔 Considering Plugin marketplace (opt-in) v2.x
❌ Won't Do Hosted SaaS
❌ Won't Do Built-in wallet signing
❌ Won't Do Telemetry / analytics

🤝 Contributing

PRs welcome. Active areas:

  • More LLM providers (Cohere, AI21, Replicate)
  • More chat channels (Matrix, Signal, IRC)
  • More crypto plugins (Hyperliquid stats, Jito, Eigenlayer)
  • More skills (community-contributed)
  • Better TUI dashboard (more panels)
  • i18n for CLI messages

See CONTRIBUTING.md for setup and conventions.

git clone https://github.com/openvesper/openvesper
cd openvesper
pnpm install --ignore-scripts
pnpm -r build
pnpm test             # 18 vitest tests

📊 Stats

Repo Stats


Top Languages


Activity Graph


📄 License

MIT — see LICENSE.

OpenVesper is an independent open-source project. Not affiliated with any chain, exchange, or LLM provider.


Pinned Loading

  1. openvesper openvesper Public

    TypeScript 3