Skip to main content
         ██████
         ██████
         ██████
████████████████████████
████████████████████████
         ██████
         ██████
         ██████
         ██████
         ██████

SayHi

An AI agent that grows through every conversation.

PyPI Python License: MIT GitHub

Quick Start · Score System · Commands · Models · Platforms


SayHi is an open-source AI agent for your terminal. It searches the web, reads and writes files in your project, remembers what it learns, and tracks its own capability growth across sessions — getting measurably better the more you use it.

活跃度 38  ❯ 帮我搜索最近的AI进展,写个总结页面

  searching web...  →  reading page...

╭───────────────────────── SayHi ─────────────────────────╮
│ 搞定!已保存到 ai-news.html,涵盖 12 篇最新报道。        │
╰──────────────────────────────────────────────────────────╯

活跃度 38  ❯

Quick Start

pip install sayhi-agent
sayhi onboard        # interactive setup: pick model + API key
sayhi start          # start talking

macOS · Linux · Windows — Python 3.10+


What makes it different

Grows over time. SayHi tracks its own capability across 7 dimensions (tool use, memory, conversation quality, domain expertise, reliability, activity, growth rate). Run /score any time to see a detailed breakdown. Run /path to see how the scores change across sessions.

Workspace-aware. Launch sayhi start from any project folder — that directory becomes SayHi's workspace. Files it creates land there. Drop a SAYHI.md in the folder to give it project-specific context, like Claude Code's CLAUDE.md.

my-project/
├── SAYHI.md        ← SayHi reads this on startup
├── src/
└── ...

Any model, one config line. Powered by LiteLLM — switch between Claude, GPT-4o, DeepSeek, Qwen, Gemini, or a local Ollama model instantly.

Multi-session. /session work, /session personal — each session has its own conversation context. /compact summarizes history to save tokens.


Score System

╭──────────────────── Score Card · SayHi ─────────────────────╮
│  2026-05-04 12:46  ·  Session #13  +0.7 vs last             │
│                                                              │
│  能力                                                         │
│  工具精通度  ██████████░░  62.7  →                           │
│  记忆积累    █████░░░░░░░  50.0  →                           │
│  对话质量    █████░░░░░░░  50.0  →  needs more interactions  │
│  领域专长    █████░░░░░░░  50.0  →                           │
│  执行可靠性  ████████░░░░  76.7  ↑3                          │
│                                                              │
│  成长                                                         │
│  活跃度      ██░░░░░░░░░░  21.9  →  (13 sessions / 47 msgs) │
│  成长速率    █████░░░░░░░  50.0  →                           │
│                                                              │
│  综合  53.1 / 100   📖 进阶学者                               │
╰──────────────────────────────────────────────────────────────╯

8 rank tiers: 🌱 新生 → 📖 进阶学者 → 🎓 资深专家 → 🌟 传奇智者


Commands

Command Description
/score Run capability self-assessment
/path View growth score timeline
/status Profile overview — sessions, tool calls, last score
/session [name] List or switch conversation sessions
/compact Compress session history via LLM
/model [name|add] View, switch, or add a model
/voice [secs] Voice input via microphone (STT)
/clear Clear current session
/help Show all commands
/quit Exit

Supported Models

Set model in ~/.sayhi/config.yaml, or switch live with /model:

Provider Model string Env var
Anthropic (Claude) anthropic/claude-sonnet-4-6 ANTHROPIC_API_KEY
OpenAI openai/gpt-4o OPENAI_API_KEY
DeepSeek 🇨🇳 deepseek/deepseek-chat DEEPSEEK_API_KEY
通义千问 (Qwen) 🇨🇳 dashscope/qwen-max DASHSCOPE_API_KEY
智谱 AI (GLM) 🇨🇳 zhipuai/glm-4 ZHIPUAI_API_KEY
Kimi (Moonshot) 🇨🇳 moonshot/moonshot-v1-8k MOONSHOT_API_KEY
Google Gemini gemini/gemini-1.5-pro GEMINI_API_KEY
Groq (free, fast) groq/llama-3.1-70b-versatile GROQ_API_KEY
Ollama (local) ollama/qwen2.5 (none needed)
# ~/.sayhi/config.yaml
llm:
  model: "deepseek/deepseek-chat"
  api_key: "sk-..."

Or via environment variable (takes priority):

ANTHROPIC_API_KEY=sk-ant-...  sayhi start

Platforms

SayHi runs on CLI by default. Enable other platforms in ~/.sayhi/config.yaml:

Platform Install Config key
CLI built-in —
HTTP API built-in http.enabled: true
Telegram pip install "sayhi-agent[telegram]" telegram.bot_token
Discord pip install "sayhi-agent[discord]" discord.bot_token
Slack pip install "sayhi-agent[slack]" slack.bot_token
飞书 / Lark pip install "sayhi-agent[feishu]" feishu.app_id
钉钉 DingTalk pip install "sayhi-agent[dingtalk]" dingtalk.app_key
企业微信 WeCom pip install "sayhi-agent[wecom]" wecom.corp_id
QQ 频道 pip install "sayhi-agent[qq]" qq.app_id

Install Options

pip install sayhi-agent                # CLI only
pip install "sayhi-agent[web]"         # + web search & page fetch
pip install "sayhi-agent[telegram]"    # + Telegram bot
pip install "sayhi-agent[voice]"       # + voice input (STT) & output (TTS)
pip install "sayhi-agent[keyring]"     # + encrypted API key storage
pip install "sayhi-agent[all]"         # everything

Configuration

sayhi onboard creates ~/.sayhi/config.yaml with all defaults. Key fields:

llm:
  model: "anthropic/claude-sonnet-4-6"
  api_key: ""        # leave empty to use env vars
  max_tokens: 4096

http:
  enabled: true
  host: "0.0.0.0"
  port: 8080
  api_key: ""        # optional auth for the REST API

Architecture

sayhi/
├── agent/
│   ├── core.py        ← LLM loop, tool dispatch
│   ├── profile.py     ← persistent session state
│   └── scorer.py      ← capability scoring engine
├── tools/
│   └── registry.py    ← bash, read/write file, web search, ...
├── memory/
│   └── provider.py    ← markdown-based persistent memory
├── platform/
│   └── adapters/      ← cli, telegram, discord, slack, ...
└── ui/
    └── banner.py      ← startup screen

License

MIT

Metadata

Release files for sayhi-agent 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sayhi-agent 1.2.1
File Size Uploaded
sayhi_agent-1.2.1.tar.gz 52.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sayhi-agent 1.2.1
File Interpreter ABI Platform
sayhi_agent-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 111.0 kB

Release files / sayhi_agent-1.2.1.tar.gz

Download URL sayhi_agent-1.2.1.tar.gz
Size 52.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7a75cf8d3821ca5986e545fbd0b7f72ab19e52f637a1bdf90f6c274de0f837db
BLAKE2b-256 checksum
How to use checksums
932bcda369081680367b178d9569dd0339f58fdaf52337fa43201ae19891dcb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / sayhi_agent-1.2.1-py3-none-any.whl

Download URL sayhi_agent-1.2.1-py3-none-any.whl
Size 58.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
feb4068e1644b04a2fdc8f2b2e8f9fbbc4212630475aff7ee5ba5be76669b8a8
BLAKE2b-256 checksum
How to use checksums
7f68dd70ec6b86306e713674cb57800d8fbe9570cfeeec83ff274cd8174f1b14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release history Release notifications | RSS feed

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page