Lattice
연구를 위한 작업공간
hex Claude Code는 최고의 개인 비서
Claude Code is the best personal assistant there is. It's just been busy writing code. hex is the thin layer that points it at your life: about 1,400 lines plus its connectors, on the Claude plan you
생산성TypeScript · HTMLGitHub @AVGVSTVS96온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Claude Code as your personal assistant, in the client you pick: Telegram, Discord, Buzz, or one your agent builds.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
built in 6 hours at the Personal Agents Hackathon because I wasn't happy with all the other options, this is my version of the personal assistant
• as simple, elegant, portable, and modifiable as humanly possible
• more capable than any other assistant on the market (Dots, Instinct, Grok Bot, Hermes, OpenClaw)
• clean and solid foundation to build on, claude code updates immediately benefit hex with no modification
• relies on an auto-maintained fork of Anthropic's telegram + discord connectors which support multiple threads per channelREADME 전문 보기 ↗bootstrapped in 6 hours at the Personal Agents Hackathon because I wasn't happy with all the other options, this is my version of the personal assistant
- as simple, elegant, portable, and modifiable as possible
- more capable than any other assistant on the market (Dots, Grok Bot, Hermes, OpenClaw)
- made of pluggable parts, modules that can be interchanged and swapped
- swappable harness, hex wraps claude code currently, but hex will be portable and able to set itself up on any harness and system with ease
collectively, we still have a lot of work to do before we figure out the "right" way to build these products. there are many opportunities to reduce friction and make the experience more seamless for end users.
the most difficult part of building a proper personal assistant appears to be security, and user trust/sentiment. this is tricky, because you never solve it once. every update or improvement made needs to take security and trust implications into account.
following security and trust, this is my read on the what the remaining challenges are:
- memory and context management
- instruction/skill management (huge potential for tech debt, and over-constraint; needs constant tuning)
- harness state and persistent durable architecture
- portability and modifiability that doesn't threaten the core
hex will serve as my sandbox for ongoing experimentation and testing, but i've tried to package it as an easy install for anyone familiar with claude code
please join me in my quest to build the most minimal, capable, safe, and hackable personal assistant :)
-- bassim
hex runs wherever Claude Code does, on a machine that stays on (a home server, a Mac that doesn't sleep, a cloud VM), with your own Claude subscription; you pick the model for each role. It's a handful of plain files around Claude Code, plus one SQLite file for its messages and tasks: no framework, no service manager required. One small hub process holds the app connections and starts a Claude Code session for each conversation.
your apps your machine
┌──────────────┐ ┌─────────────────────────────────────────────┐
│ Telegram │ │ │
│ ├ General │◀─────────────▶│ hub (one connection per app) │
│ └ trip │ │ │ │
└──────────────┘ │ ├──▶ claude "hex" General │
┌──────────────┐ │ ├──▶ claude (bg) trip │
│ Discord │ │ ├──▶ claude (bg) #dev › ci │
│ └ #dev │◀─────────────▶│ ├──▶ claude (bg) #ops › backups │
│ └ ci │ │ ├──▶ claude (bg) ~/code/app │
└──────────────┘ │ └──▶ claude (bg) voice │
┌──────────────┐ │ │
│ Buzz │ │ │
│ └ #ops │◀─────────────▶│ SOUL.md AGENTS.md memory/ state/ │
│ └ backups │ │ │
└──────────────┘ │ │
┌──────────────┐ │ │
│ T3 Code │ │ │
│ └ ~/code/app│◀─────────────▶│ │
└──────────────┘ │ │
┌──────────────┐ │ │
│ Voice, phone │◀─────────────▶│ │
└──────────────┘ └─────────────────────────────────────────────┘
chat/, Haiku compresses the log into a tree of one-line summaries in the background, and each message starts a fresh session that sees those summaries instead of a history, opening any line back up to the words it came from. Nothing is compacted and nothing is lost. A message sent while hex is still working reaches that same session.~/hex holds everything that's yours: SOUL.md (who it is), your own rules in AGENTS.md, what it brings up on its own in PROACTIVE.md, schedules.json, its memory, and every message it heard and sent in state/hex.db (hex log prints them as markdown). It's a private git repo, and hex commits its own edits. hex itself lives in ~/hex/.hex, a clone of this repo. Updates pull there, and bin/migrate adds new default files to your folder and updates the ones you never edited.AGENTS.md; everything else hex knows is in OptMem.Pick a client that's ready, or tell your agent to build yours. Use one for everything, or one for work and another for the rest. One hub serves them all, and each is its own way of working, not a copy of the others.
Telegram: topics and voice notes. Built and running today.
Discord: tag it and it gets to work. Built and running today.
#research or #dev. Room for longer answers, code blocks and history.Buzz: watch it work. Built and running today.
T3 Code: hex in any project. Built and running today.
hex acp connects T3 to the hex that's already running.iikb: hex in your keyboard. Built and running today.
Voice: call it. Built and running today.
Your own: tell your agent. hex's Buzz client was built this way. Swap in any app:
Build me a Slack channel on your hub, modeled on your Discord one, so every Slack thread is its own session.
Each thread lives in one app. Say "take this to Discord" or "take this to Buzz" and the same session moves over with its memory. The old thread posts a link to the new one and closes.
You need a machine that stays on and runs Claude Code, and a Claude subscription. Paste this into Claude Code on that machine:
Set up hex for me: https://github.com/AVGVSTVS96/hex. Follow INSTALL.md in that repo.
Your agent does the setup. You only do the parts nobody else can: create a bot with @BotFather, make a Telegram group with Topics turned on, and say hi. The full steps are in INSTALL.md. Anytime after, ~/hex/.hex/bin/hex doctor checks the setup and says how to fix what's off.
~/hex/ yours: a private git repo
├── AGENTS.md your rules; imports SOUL.md and .hex/HEX.md
├── SOUL.md who it is
├── PROACTIVE.md what it brings up on its own, and when
├── schedules.json recurring jobs, the hourly check included
├── memory/ its OptMem memory
├── chat/ each DM's chat that never ends: its log, summary tree and view
├── .env state/ bot tokens, thread lists, hex.db with every message and task (never committed)
├── scratch/ throwaway work (never committed)
└── .hex/ hex itself: this repo
├── HEX.md how it works
├── bin/
│ ├── hex init, start, stop, restart, status, doctor; run keeps the hub up; acp connects T3 Code; deliver wakes a thread; task, hold and log
│ ├── session how the hub starts each session
│ ├── chat logs a DM, compresses it, and builds what its next session sees
│ ├── wake loads your profile and its memory as each session starts and after a compaction
│ ├── live-status shows its branches, upcoming jobs, sessions and each active thread's last message as each session starts
│ ├── compacted puts the last turns back after a compaction, or a handoff
│ ├── send-gate holds sends and deletes until you say yes (HEX_SEND_MACHINES addresses go free)
│ ├── transcribe voice notes → text
│ ├── vault asks you for secrets by link, signs in with them
│ ├── job long work as its own unit, waking its thread when it ends
│ ├── place, room runs an agent job on whichever of your machines has room
│ ├── worktree-trash clears away worktrees whose work is merged
│ ├── t3-relink renews a T3 Code link to another machine
│ ├── pkill-guard stops a `pkill -f` that would kill its own shell
│ ├── hands-off keeps edits out of memory/ and .hex/, and memo out of subagents
│ └── update pulls updates, tests them, ships when no session is busy
├── chat/prompt.md Taelin's OptChat prompt, for DM sessions and their compactions
├── plugin/ the hooks every session loads, and skills it reads when needed
├── computer/setup turns a Sprite into its computer
├── defaults/ what `hex init` starts your folder with
├── hub/ gives every thread its own session, keeps every message, runs schedules.json
├── systemd/ units for running hex under systemd
└── channels/ the Telegram, Discord, Buzz, T3 Code, voice and iikb channels
hex doesn't need systemd or any service manager. hex start runs the hub in the background, and the hub keeps General running. To have it come back after a reboot, point whatever your machine uses at hex run: the systemd units in systemd/, which also keep sessions in a memory slice apart from the hub, a launchd agent, a Sprite service, or an @reboot cron line.
channels/ is hex's own plugin marketplace: one bot connection per app, serving every Telegram topic, Discord thread and Buzz thread, plus T3 Code and voice calls, all through the hub in hub/, which gives each thread its own session. Telegram and Discord began as Anthropic's official plugins and were kept in step by an auto-maintained fork, which still has their history; they live here now, and upstream fixes come in by hand. Every morning bin/update pulls hex and runs bin/check before your hub restarts on it, and a hub that then can't start goes back to the commit it last ran on.
hex is a testbed. Let's make it better together: fork it, do what you want with it, and send back what works.
pull what's new every morning's update
this repo ─────────────────▶ your fork ───────────────────────▶ your hex
▲ │ ▲
└────── pull request ──────┘ └── your changes
AGENTS.md shows it around). Push to your fork, and your hex picks it up on its next update.git pull https://github.com/AVGVSTVS96/hex main and push.~/hex, because that's what makes it hex: AGENTS.md, SOUL.md and the hooks all load from there. Claude Code only picks up a CLAUDE.md or AGENTS.md on its own inside the folder a session starts in, so when hex works in a repo somewhere else, like ~/Projects/foo, that repo's rules go unread unless hex opens them itself. A fix is planned soon. Until then, ask hex to read the repo's AGENTS.md or CLAUDE.md before it starts.hex log prints as markdown.schedules.json, a cron line and a prompt each.computer/setup builds one on a Fly.io Sprite in one command.