Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기App build
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Five private-beta companions on one engine. Each is one page: add up to 10 photos, ask a question, or both, and get an answer with a point of view.README 전문 보기 ↗Five private-beta companions on one engine. Each is one page: add up to 10 photos, ask a question, or both, and get an answer with a point of view.
The code is shared. Each companion is its own Vercel project with its own address, name, icon and link preview, chosen by one setting: COMPANION=gio, tony, martini, alden or goldie (hub for the Cinq landing page).
Jack has retired. He stays in the code as Jack (jack.ts, jack-prompt.ts) so his old address, still COMPANION=jack, shows a page saying he's no longer one of Cinq's advisors, under his own name and icon. It takes no new questions (the ask route answers 410). Nothing a person asked Jack was ever saved, so there is nothing to move, and nothing presents Jack's link as Alden.
Open by default. Anyone with the address can use the app, with no sign-in. The start screen has a Share button that sends the address by Messages, Mail or WhatsApp. Each visitor can ask 40 questions an hour (QUESTIONS_PER_HOUR), and every question goes on your Anthropic account, so set a monthly spend limit at platform.claude.com → Settings → Limits. The pages are marked not-for-search-engines, but anyone you send the link to can forward it.
Sign-in, if you want it back: set REQUIRE_SIGN_IN=true on a project and redeploy. Then:
INVITE_CODE to something long and hard to guess. The start screen's button becomes Invite, sharing https://<address>/join/<INVITE_CODE>. Whoever opens it enters an email and is in, no password. Ban people in Supabase to remove them; change INVITE_CODE to retire the link.On a phone, Share → Add to Home Screen installs the app with its own icon, opening full screen.
Testers see plain messages ("Amar isn't available right now", "Gio is busy right now"). The reason (a rejected key, no credit, a missing setting) goes to the server log: Vercel → your project → Logs, filtered to errors.
NEXT_TELEMETRY_DISABLED=1 on Vercel too. Fonts are bundled at build time, so the browser never contacts Google. Leave Vercel Analytics and Speed Insights off.Browser ──► Next.js on Vercel ──► Anthropic (claude-opus-5-5, web search)
│
└──► Supabase Auth (sign-in only)
src/components/studio.tsx is the whole interface: the start screen, the conversation and the composer (camera button, optional text, send). A failed answer puts the question and photos back to resend; answers can be copied.src/lib/companions/ holds each companion: its system prompt (gio-prompt.ts, tony-prompt.ts, martini-prompt.ts, alden-prompt.ts, untangled-prompt.ts; jack-prompt.ts for the retired Jack), its capabilities, and the words the page shows (name, tagline, placeholder, status lines). currentCompanion() picks one from COMPANION; ACTIVE_LINEUP is the five on Cinq.src/app/icon.tsx, apple-icon.tsx, opengraph-image.tsx and manifest.ts give each companion its home-screen icon (a letter on each companion's iconTile colour; Alden's claret tile is a placeholder until an approved Alden icon exists) and link preview, drawn at build time with the fonts in assets/fonts (SIL Open Font License).src/lib/ask/photos.ts shrinks photos in the browser. src/lib/ask/budget.ts keeps each request under Vercel's 4.5 MB body limit by dropping the oldest photos from long visits first.src/app/api/ask/route.ts checks the sign-in, validates the request and streams the answer as NDJSON.src/lib/ask/prompt.ts assembles what the model sees, in order: the companion's system prompt, then an app capabilities block (what the app does, that it keeps nothing, that it doesn't know who's asking), then the conversation.src/lib/ai/anthropic.ts streams from Claude with web search, resumes paused search turns, and falls back server-side when a request is refused.To change how a companion thinks, edit its src/lib/companions/<name>-prompt.ts and redeploy both projects' latest deployment (a merge does this automatically).
Needs Node 20+.
npm installnpx supabase start locally, which needs Docker).cp .env.example .env.local and fill in the Supabase URL and publishable key and your Anthropic key. Set COMPANION=tony, martini or jack to run another companion.npm run dev and open http://localhost:3000.The supabase/ folder holds migrations from the earlier, fuller version of Gio. The app no longer reads those tables; an existing project can keep them, and a new one doesn't need them.
npm test # prompt assembly, the ask route, request budgeting, the Anthropic provider
npm run lint
npm run typecheck
npm run build
scripts/dev/mock-anthropic.mjs is an offline stand-in for the Anthropic API. Run it and set ANTHROPIC_BASE_URL=http://127.0.0.1:4010 to try the app without a key.
Every variable is documented in .env.example.
| Variable | Purpose |
|---|---|
COMPANION | gio (default), tony, martini, alden, goldie, or hub; jack only on Jack's retired address. Read at build time: redeploy after changing it |
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Sign-in, when it's on. NEXT_PUBLIC_SUPABASE_ANON_KEY also works, as set by the Vercel Supabase integration |
ANTHROPIC_API_KEY | Claude |
CHAT_MODEL | Defaults to claude-opus-5-5 (GIO_CHAT_MODEL also works) |
CHAT_EFFORT | How much the companion thinks before answering. Defaults to high |
WEB_SEARCH_MAX_USES | Web searches allowed per answer. Defaults to Gio 5, Amar 8, Martini 5, Alden 5, Goldie 0; 0 turns search off |
REQUIRE_SIGN_IN | Optional. true requires sign-in; unset, the app is open to anyone with the address |
QUESTIONS_PER_HOUR | Optional. Per-visitor cap, default 40; 0 turns it off |
INVITE_CODE | Optional, with sign-in on. Turns on link invitations (/join/<code>) and the Invite button |
SUPABASE_SERVICE_ROLE_KEY | Needed for link invitations; server-side only. Set by the Vercel Supabase integration (SUPABASE_SECRET_KEY also works) |
NEXT_PUBLIC_ALDEN_URL | Hub only. Alden's address for his card on Cinq. Unset, a preview's card says "Coming soon", and a production hub build stops (src/lib/launch.ts) so the live hub never does |
NEXT_TELEMETRY_DISABLED | Set to 1 |
vercel.json pins the framework to Next.js.A second companion is a second Vercel project from the same repo: Add New → Project → import The-Host again, name it (say, tony), and add the same variables plus COMPANION=tony. Connect the same Supabase project (Storage → Connect) so testers keep one login. Every merge to main redeploys both.
Answers stream. The ask route allows up to 300 seconds and ends an answer 20 seconds before that with a message, keeping what was written; lower maxDuration in src/app/api/ask/route.ts if your plan's limit is lower, or raise it (up to your plan's limit) to give long answers more time.
Live prices come from web search, which must be enabled for your Anthropic organization. If a companion never searches, an admin can turn it on in the Claude Console under organization privacy settings.