Meltype
눈 녹듯 반각·전각 장벽을 녹여주는 일본어 입력
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A private diary that writes back. You choose who you need right now (Dear diary, Best friend, Spouse, Mom, or "You decide"), write, and get a short reply in that voice, ending with a handwritten "I know."
This repository is the web version, ready for Vercel.
| Part | What it does |
|---|---|
index.html | The whole app (built from src/iknow.html). |
standalone.js | Lets the app run on its own website: replies go through /api/sample, exports become normal downloads, and the diary is stored in the phone's own browser. |
api/sample.js | A Vercel serverless function. It adds your Anthropic API key and calls the Claude Messages API. It stores and logs nothing. |
vercel.json | Security headers. No build step is needed. |
Where the diary lives: only in the browser on the phone that uses it (localStorage). There is no account and no database. Clearing browser data or switching phones loses the diary, so users should use Settings → Export my diary now and then.
What leaves the phone: only the text needed to write a reply, sent through /api/sample to Anthropic's API.
Add these under Project → Settings → Environment Variables, then redeploy:
| Variable | Required | Purpose |
|---|---|---|
ANTHROPIC_API_KEY | Yes | Your key from console.anthropic.com. Without it, replies show "Replies aren't switched on yet". |
IKNOW_ACCESS_CODE | Recommended | An invite code. When set, each phone must enter it once before replies work, so strangers who find the link can't spend your API credit. |
IKNOW_DEVICE_SECRET | Recommended | Turns on phone-specific codes (replaces IKNOW_ACCESS_CODE). A long phrase only you know, at least 20 characters. Changing it switches off every phone's code at once. |
IKNOW_REQUEST_WHATSAPP | With phone codes | Your WhatsApp number with country code, e.g. 919800000000. The app's "Request a code" button opens WhatsApp to this number with the phone's ID filled in. |
IKNOW_REQUEST_EMAIL | Optional | An email address for code requests, as well as or instead of WhatsApp. |
IKNOW_REVOKED_DEVICES | Optional | Link IDs or phone IDs to switch off, separated by commas, e.g. X9A5-Y3RJ, NY4C-ECWJ. |
BLOB_READ_WRITE_TOKEN | For sign-in links | Added automatically when you connect a Vercel Blob store to the project (Storage → Create → Blob). |
ANTHROPIC_WORKSPACE_ID | Only if needed | Needed only when your API key isn't tied to a workspace (Anthropic then says the request "must include the anthropic-workspace-id header"). Copy the ID from console.anthropic.com → Workspaces. Easier: create the key inside a workspace instead. |
ANTHROPIC_MODEL | No | Model for replies. Default claude-sonnet-5-5. |
ANTHROPIC_MODEL_QUICK | No | Model for quick tasks (picking a voice, style summaries). Default claude-haiku-5-5. |
The function also limits each IP address to 20 requests a minute (best effort).
Access is managed by a small service (Supabase Edge Function iknow-access, source in supabase/functions/iknow-access/) with its own private database schema iknow.
/owner and create your username and password. To prove it's you, it checks your current IKNOW_ACCESS_CODE (read from your phone automatically if you've used the app there). Only a PBKDF2 hash of the password is stored.IKNOW_REQUEST_WHATSAPP is set)./owner. It takes effect on that phone within about 30 seconds. No Vercel settings, no redeploys.Once the owner account exists, the shared invite code no longer gives anyone access; it is only used as a fallback if the access service is unreachable. Stored per phone: a hash of a random token made by that browser, the name they typed, status and dates. No diary text.
Needs IKNOW_DEVICE_SECRET and a Vercel Blob store connected to the project.
/owner, enter your secret, tap Make a sign-in link, then Copy a message to send.The Blob store holds only iknow-used/<linkId> markers. No names, no diary text. Replies are checked by signature, so there is no lookup per reply.
With IKNOW_DEVICE_SECRET set, every phone (or browser) gets its own ID, like NY4C-ECWJ, the first time it asks for a reply.
/owner on this site (e.g. know-zeta.vercel.app/owner), enter your secret and their phone ID, and get their code, e.g. 772M-GECM.No database is used: a code is a signature of the phone ID made with your secret, so the server can check it without storing anything. The owner page works the code out in your own browser and sends nothing anywhere.
A new browser, a private window, or clearing browser data gives that phone a new ID, so it needs a new code (its old diary is gone in that case anyway).
Edit src/iknow.html, then rebuild index.html:
python3 build.py
src/iknow.html is the same file that runs inside Claude as an artifact. build.py only adds the standalone adapter and web-accurate privacy wording.
Tele-MANAS 14416 / 1-800-891-4416 (India, free, 24×7) and emergency 112. Dear Mann is not therapy, medical, legal or emergency advice.