Metadata-Version: 2.5
Name: bluesilk
Version: 0.3.1
Summary: A fast, minimal AI agent for you or a small team: DeepSeek + Telegram, zero dependencies.
Project-URL: Repository, https://github.com/wunsiang-cheng/bluesilk
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# bluesilk

A fast, minimal AI agent for you or a small team. DeepSeek + Telegram, one file, zero dependencies.

1 key + 1 bot token + your team's user IDs and you're good to go:

```sh
uv tool install bluesilk   # or: pipx install bluesilk
bluesilk                   # first run asks for the key, the token and the user IDs, then starts
bluesilk setup             # redo setup (e.g. to add a member)
```

- **Tools:** `shell` (unrestricted) and `send` (text/files to Telegram).
- **MCP:** put your servers in `~/.bluesilk/mcp.json` and their tools join bluesilk's own, named `<server>__<tool>`. Local ones over stdio, your own services over Streamable HTTP with a bearer token (`headers` for anything else). Still no dependencies. A server that won't start is skipped, not fatal, and an HTTP one that restarts is re-connected on the next call.

  ```json
  {"mcpServers": {
    "our-crm": {"url": "http://10.0.0.5:8000/mcp", "token": "..."},
    "local":   {"command": "uv", "args": ["run", "/srv/tickets/mcp.py"], "env": {"DB": "..."}}
  }}
  ```

  No OAuth: bring a token the server already accepts. Over plain `http://` that token crosses your network in the clear.
- **Team:** each member chats with the bot privately and gets their own conversation. Members run in parallel; memory, skills and tools are shared.
- **Long commands:** anything still running after 30s moves to the background, so the chat stays free; the result arrives when it finishes.
- **Commands:** `/new` starts a new conversation (yours only); `/reset` returns everyone to a fresh install (keys kept, old data moved to `~/.bluesilk.bak-<time>`).
- **Images:** photos and image files you send (JPEG/PNG/GIF/WebP, detected by content) go straight to deepseek-flash vision.
- **Feedback:** 👀 on receipt, a live status draft with a stop button, then the reply.
- **Memory:** plain files in `~/.bluesilk/` (`MEMORY.md`, `memory/`, `skills/`, `tools/`), managed by the agent itself.
- **Context:** compacted into a summary past 50% of the 1M window.
- **Reflection:** after 24h, once everyone has been idle for 30 min, it reviews history, tidies memory and writes new skills/tools, without holding up the chat.

**Trust:** every member fully controls the machine account bluesilk runs as. They can read each other's conversations, the keys in `config.json` and any MCP tokens in `mcp.json`. Only add people you'd give a login to, and give bluesilk a machine, VM or user account of its own.

Keep it running with `tmux` or `nohup bluesilk &`.
