Skip to main content

A self-directed AI agent that grows through conversation

Project description

         ██████
         ██████
         ██████
████████████████████████
████████████████████████
         ██████
         ██████
         ██████
         ██████
         ██████

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

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

sayhi_agent-1.2.0.tar.gz (51.4 kB view details)

Uploaded Source

Built Distribution

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

sayhi_agent-1.2.0-py3-none-any.whl (58.1 kB view details)

Uploaded Python 3

File details

Details for the file sayhi_agent-1.2.0.tar.gz.

File metadata

  • Download URL: sayhi_agent-1.2.0.tar.gz
  • Upload date:
  • Size: 51.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for sayhi_agent-1.2.0.tar.gz
Algorithm Hash digest
SHA256 d75cd452e7f3e33838947a0aad7f6993e34ae9dab0484aa58cd6f0d6e6f2c8e5
MD5 5c72f4663bccbf385bb54c640b7129e7
BLAKE2b-256 1ffc0a5b2c0cdf45c17b359ccb3baf99a6fbc48730efdf861da6bca996166c3a

See more details on using hashes here.

File details

Details for the file sayhi_agent-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: sayhi_agent-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for sayhi_agent-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25137eb55684718fdd0c000c67f60011481e728bac9fc93c542d269f84753ed5
MD5 572089eaf998b604326450752ba961d2
BLAKE2b-256 8c5cc48eb504059c1350105e68767ec3a901a94829389e32d45f28c73f802d8b

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