Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A lightweight personal Farcaster client for Zaal (@zaal, FID 19640). Read your timeline and post/reply directly from your machine. Open source. Now with token-powered reply ranking via $zaalcaster.
Zaalcaster is a view-only client where only Zaal posts; everyone else can read. It's his daily cockpit for:README 전문 보기 ↗A lightweight personal Farcaster client for Zaal (@zaal, FID 19640). Read your timeline and post/reply directly from your machine. Open source. Now with token-powered reply ranking via $zaalcaster.
Zaalcaster is a view-only client where only Zaal posts; everyone else can read. It's his daily cockpit for:
Plus now: $zaalcaster token - a mechanism for signaling which replies deserve attention, backed by stake (hold) and tips (spend). Two dials, human judgment stays in the loop.
# 1. Clone and install
git clone https://github.com/bettercallzaal/zaalcaster.git
cd zaalcaster
npm install
# 2. Get Neynar key
# Visit https://dev.neynar.com, create app, copy key
# 3. Mint a managed signer (for posting)
npm run mint-signer
# Walks the flow: signs KeyRequest, registers with Neynar, opens phone-approval URL,
# polls until approved, writes ZAAL_SIGNER_UUID to creds file.
# 4. Create credentials file
mkdir -p ~/.zao/private
cat > ~/.zao/private/farcaster-zaal.env << 'INNER_EOF'
NEYNAR_API_KEY=your_key_here
ZAAL_SIGNER_UUID=your_signer_uuid
ZAAL_FID=19640
INNER_EOF
chmod 600 ~/.zao/private/farcaster-zaal.env
# 5. Test
npm run timeline -- --limit 5
You should see your last 5 casts from people you follow.
All commands post to the real Farcaster network. Be intentional.
# Timeline (home feed)
npm run timeline -- --limit 20
zaalcaster-timeline --limit 10
# Notifications (mentions, replies, likes, recasts)
npm run notifs -- --limit 20
# Unanswered inbound (the daily driver)
npm run engage
node bin/engage.js --context # show parent cast of each reply
node bin/engage.js --json # structured output
node bin/engage.js --drafts # AI-suggested replies
# Channels
npm run channels # /zao, /wavewarz, /zabal interleaved
node bin/channels.js zao # single channel
# Morning cockpit (in one screen)
npm run morning
node bin/morning.js --limit 5
# Search
npm run search -- "music" --limit 10
# User lookup
npm run user -- @someone
node bin/user.js 19640 --casts 3
# Thread view
npm run thread -- "https://farcaster.xyz/user/0x12345678"
node bin/thread.js 0xabcd... --depth 3
Post (preview by default; use --yes to actually post):
npm run post -- "Hello Farcaster"
npm run post -- "Hello Farcaster" --yes # actually posts
npm run post -- "Check this" --embed "https://example.com"
zaalcaster-post "Hello ZAO" --channel "zao" # to a channel
Reply (preview by default):
npm run reply -- "0xabcd..." "Great post!"
npm run reply -- "https://farcaster.xyz/user/0x12345678" "Nice!" --yes
zaalcaster-reply "0xabcd..." "Love it" --embed "https://example.com"
Generate suggested replies in Zaal's voice (uses OpenRouter if ~/.zao/private/openrouter.key exists, otherwise falls back to local claude CLI):
node bin/engage.js --drafts
Deploy to Vercel for a browser-based UI:
npm run dev # local dev
vercel deploy # production
Once running, you get 9 tabs:
Guest sign-ins get read-only access to Feed, Channels, Search, POIDH. Owner (FID matching USER_FID env var) gets write access to everything.
NEYNAR_API_KEY - free from dev.neynar.comZAAL_SIGNER_UUID - managed signer (from npm run mint-signer)ZAAL_FID - your Farcaster ID (default: 19640)SESSION_SECRET - sign-in sessions (any random string)NEYNAR_CLIENT_ID - Sign In With Farcaster via Neynar (optional)USER_FID - owner FID for write access (default: 19640)OPENROUTER_API_KEY - for AI reply drafts (optional)EMPIRE_BUILDER_API_KEY - for creating tokenless empires (optional)KV_REST_API_URL + KV_REST_API_TOKEN - Vercel KV for cross-device syncSee .env.example for all options.
Zaalcaster uses only Node 20+ built-ins. No npm packages. Smaller attack surface, simpler deployment.
<username>casterZaalcaster is one person's daily driver. Fork it and make it yours.
Your fork must be named your Farcaster username + caster, all lowercase:
alice → alicecasterdwr.eth → dwrcaster (drop the .eth)This applies to: repo name, Vercel project, page title, CLI binary.
public/index.html: change <title> and zaal<span>caster</span> headerZAAL_FID env var (or customize the hardcoded references)voice.js: change @zaal to your handle, adjust reply rulescontext.js: replace ZAO/WaveWarZ facts with facts about you/your projectHOME_CHANNELS in public/index.html and bin/channels.jsDAILY_DEFAULT block in public/index.html (edit live later too)git push
vercel deploy
# Set env vars in Vercel project dashboard
Read-only public access is free. Owner-only write access is controlled by USER_FID + SESSION_SECRET.
Zaalcaster now includes $zaalcaster - a token for signaling which replies deserve Zaal's attention.
See ONE-PAGER.md for full details.
MIT. Use freely. Farcaster is a public network. Fork it. Make it yours.
Questions? Open an issue on GitHub or ping @zaal on Farcaster.
Built in the open. No bullshit. Let's go.