Voicebar
음성 우선 Android 키보드, Gboard와 함께 사용 음성 입력 후 정리된 메시지가 입력란에 들어갑니다
opbox는 실시간으로 디렉터리를 동기화하는 실험적 오픈소스 데몬으로, CRDT 병합·모든 편집기·종단 암호화·오프라인 지원을 제공합니다
opbox is an experimental open-source daemon that syncs directories of plain text files between machines in real time — CRDT merges, any editor, end-to-end encrypted, offline-friendly.
생산성Rust · ShellGitHub @s2-streamstore온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗⚠️ Warning: Use this software with caution. Always keep additional backups of your data.
Real-time, editor agnostic, multiplayer sync for regular UTF-8 text files.
Great for collaborating on an Obsidian graph or a codebase without going through git for everything.
A local daemon listens for both local and remote changes to files in a synced workspace directory.
For every text file in your directory, opbox locally maintains a CRDT-backed shadow version of it. When you save a change to a local file, it solves for an equivalent CRDT operation by doing a regular text diff, then modeling it as an update operation to the CRDT document.
This op is then published to other sync daemons by appending it to a shared, durable journal (S2).
Daemons listen for new ops on the journal, update the local CRDT shadow, and then materialize new versions of the text files on disk.
See docs/architecture.md for more detail.
The only external service this relies on is s2.dev. You can sign up for an account and use the cloud version, or run s2-lite yourself.
[!TIP] Head over to the quickstart to get up and running.
See the in-progress architecture notes and design notes.
Sync correctness is exercised with deterministic simulation testing — see sim/ for the setup and how to run it.
Monitor the shared log (CRDT operations being read from S2) in real time within a workspace:
my-opbox-project % ob spy
spying on opbox workspace d5nev0w5bmzxrh44vsc6jd38rqhb03pb (pid 97662)
session daemon=jc99r2
#4@1782939393173 169B namespace from=n20f2d(remote) obj=ae1fxx +claim="hello.txt" (text)
#5@1782939393173 13B text from=n20f2d(remote) obj=ae1fxx +0ch -0
#6@1782939397685 41B text from=n20f2d(remote) obj=ae1fxx +13ch -0 insert="hello world!\n"
#7@1782939411995 65B namespace from=n20f2d(remote) obj=ae1fxx -claim="hello.txt" (text)
#8@1782939448876 169B namespace from=jc99r2(you) obj=fej65k +claim="world.txt" (text)
#9@1782939448876 13B text from=jc99r2(you) obj=fej65k +0ch -0
#10@1782939458443 31B text from=n20f2d(remote) obj=fej65k +3ch -0 insert="yo\n"
#11@1782939468828 37B text from=jc99r2(you) obj=fej65k +9ch -0 insert="hi there "
ob config manages typed opbox configuration. By default it writes user-wide defaults, such as the S2 access token and default basin:
ob config set access-token "MY_TOKEN"
ob config set default-basin "MY_BASIN"
You can override selected values for just the current workspace:
ob config --workspace set basin "WORKSPACE_BASIN"
ob config --workspace set daemon-log-level "opbox_core=trace,opbox_daemon=trace,info"
Workspace config lives in .opbox/config.toml and takes precedence over the user-wide config for that workspace. Restart the daemon after changing daemon settings:
ob stop && ob start
ob logs --follow