AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
설정값을 외부에서 제공하면, Keyhole 어시스턴트가 미리보기·Porthole 지시·Render·Neon MCP 가이드를 제공합니다
Your assistant requests a setting; you supply the value outside chat. Explore Keyhole's assistant preview, Porthole instructions, and Render and Neon MCP guides.
개발 도구TypeScript · JavaScriptGitHub @jlumbroso온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Keyhole: secrets reach your project's files without ever entering the conversation
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A small VS Code extension that puts a secret (an API key, a token) into your
project's .env through a masked box, so the secret never has to appear in a
conversation with an AI assistant.
Start with the manual's harmless walkthrough and its assistant-specific file protections.
Searching for "keyhole"? This extension has nothing to do with Keyhole Markup Language
(KML, the file format of Google Earth), nor with a 2024 flaw in Windows licensing that was
also nicknamed "Keyhole" and has since been fixed. It writes your own secrets to your own
.env.
When you need to give a project a token for GitHub, Neon, Render or another
service, you run Keyhole: Set a Secret in .env…. Keyhole asks for the
variable's name, checks with git that .env is ignored and not tracked, takes
the value in a masked box, and appends it to .env. The value goes from the box
to the file and nowhere else. An assistant can still help you find and set up the
token, by name, without the value ever passing through the chat.
Both pictures are the real extension in VS Code on macOS, in a throwaway folder with a made-up value. The value is not a secret.
The masked box. It says where the value is going, and the button at the right shows what you typed if you need to check it.
Setting a variable that already has a value asks first. The question names the existing value by a short keyprint and its length, never by the value itself.
DATABASE_URL. Names are safe to
discuss; values are not..env is already tracked (git would keep tracking it despite an ignore rule) and
whether it is ignored. If it is not ignored, Keyhole offers to add it to .gitignore
first, and says what it recommends and why. If it is tracked, it tells you how to go on and
does not write. If git cannot be asked (the Git extension is off), it writes nothing it cannot
check. The same goes for a repository VS Code's Git extension did not open (git refuses
some, for example when the folder belongs to another user): Keyhole finds the .git itself,
says so, and writes nothing. If there is no git repository at all, it says so and writes,
since nothing can commit the file by accident from there..env under a comment line. If the variable is already set, Keyhole asks
before replacing it; the old line stays in the file and the new comment says which line it
supersedes.<keyprint:ghp_…f9c2#06c47309/>. A shorter value
shows none of its characters. In the code, a secret is a type that prints as [redacted]
by every route a string is made and refuses to serialize; tests check that.Keyhole's promise is about the conversation, not about your machine. Its input and result
path is built to keep the value out of chat, prompts, links and logs. An assistant that has
access to your files and a shell can still read .env itself, and Keyhole cannot stop that.
The guide to
keeping secrets out of the conversation
explains what each assistant application offers to reduce accidental reads, and where the
protection ends. Git ignoring a file also does not remove a value from history that already
contains it.
Designed in this repository's decisions, not built: a model asking for a secret by name with a link, a list of requests and drafts, step-by-step instructions for a service's token page, and writing to an assistant's own settings file. Keyhole today is the part you do yourself.
Search for "Keyhole" in VS Code's Extensions view, or run
code --install-extension jlumbroso.keyhole.
Porthole shows a page in a floating window above
your work. The two share their crew and, later, their way of receiving a request from a
terminal (a vscode:// link).
Apache License 2.0; see NOTICE.
With the human-AI collaboration template
(ADRs4AI/human-ai-collaboration-template-A,
3.12 in progress): decisions and open questions live in docs/adr/, and the
crew coordinates through docs/inbox/. See CLAUDE.md.