docs: enrich README with project overview and roadmap
This commit is contained in:
47
README.md
47
README.md
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user