docs: enrich README with project overview and roadmap

This commit is contained in:
Fam Zheng 2026-04-07 13:30:31 +01:00
parent 1f978b0691
commit ca2a48c081

View File

@ -1,6 +1,10 @@
# NOC — Not OpenClaw # NOC — Not OpenClaw
Telegram bot that bridges messages to `claude` sessions. Telegram bot that bridges messages to local `claude` CLI sessions — chat with Claude directly from Telegram.
```
User → Telegram → noc bot → claude --resume → stream back → Telegram
```
~600 lines of Rust. One binary. One config file. Does the thing. ~600 lines of Rust. One binary. One config file. Does the thing.
@ -23,31 +27,64 @@ NOC is for those people.
5. Files uploaded to the bot are forwarded to Claude; files Claude writes to the output dir are sent back 5. Files uploaded to the bot are forwarded to Claude; files Claude writes to the output dir are sent back
6. Sessions are scoped per chat and refresh daily at a configurable hour (default: 5am) 6. Sessions are scoped per chat and refresh daily at a configurable hour (default: 5am)
Session IDs are deterministic — generated with UUIDv5 from `(chat_id, date)`, format: `noc-{chat_id}-{YYYYMMDD}`.
## Setup ## Setup
```bash ```bash
cp config.example.yaml config.yaml cp config.example.yaml config.yaml
# edit config.yaml with your values # fill in your values
``` ```
## Config ### Config
| Key | Description | | Key | Description |
|-----|-------------| |-----|-------------|
| `tg.key` | Telegram bot token | | `tg.key` | Telegram bot token |
| `auth.passphrase` | Passphrase required to authenticate each session | | `auth.passphrase` | Passphrase required to authenticate each session |
| `session.refresh_hour` | Hour (local time, 24h) when sessions reset | | `session.refresh_hour` | Hour (local time, 24h) when sessions reset (default: `5`) |
## Deploy ## Deploy
### Local
```bash ```bash
make deploy make deploy
``` ```
Builds the release binary and installs a `systemd --user` service. Remote deployment via `make deploy-hera`. Builds the release binary and installs a `systemd --user` service.
### Remote (hera)
```bash
make deploy-hera
```
Builds locally, copies the binary and config to `heradev`, then starts the service there.
## Logs ## Logs
```bash ```bash
journalctl --user -u noc -f journalctl --user -u noc -f
``` ```
## Tech stack
| Layer | Technology |
|-------|-----------|
| Language | Rust (2021 edition) |
| Telegram | teloxide 0.12 |
| Async runtime | tokio (full) |
| Config | YAML + serde |
| Deployment | systemd user service + Makefile |
## Roadmap
- [ ] Streaming responses — edit message as output arrives
- [ ] Markdown formatting — MarkdownV2 rendering
- [ ] Timeout handling — kill claude if it hangs
- [ ] Graceful shutdown on SIGTERM
- [ ] `/reset` command — force new session without waiting for daily refresh
- [ ] Rate limiting per chat
- [ ] Voice message support — STT (whisper.cpp) → text → claude
- [ ] Video/audio transcription