시크릿이 있어야 할 곳은 OS 키체인,
프롬프트도 저장소도 아닙니다
AgentsRoom은 API 키, 토큰, 데이터베이스 비밀번호를 운영체제 키체인으로 암호화한 머신 로컬 보관소에 저장합니다. 시크릿은 이름으로 참조하고, 명령이나 에이전트가 시작될 때 앱이 실제 값을 채워 넣습니다.
에이전트를 빨리 풀어 주려고 토큰을 프롬프트에 붙여넣는 일은 이제 그만하세요. 시크릿에 이름을 한 번 붙이고 나머지는 전부 {{secret:NAME}}로 쓰면, 값은 있어야 할 자리에 그대로 남습니다.
AgentsRoom이 시크릿을 명령에서는 쓸 수 있게, 요청한 에이전트에게는 읽을 수 없게 유지하는 방식.
어떤 프로젝트든 결국 공유해서는 안 되는 값 몇 개를 갖게 됩니다. 결제 키, 데이터베이스 비밀번호, 배포 토큰, 스테이징 환경용 API 키 같은 것들이죠. AI 코딩 에이전트가 등장하는 순간, 이 값들은 가장 나쁜 방식으로 움직이기 시작합니다. 막힌 에이전트를 풀어 주려고 프롬프트에 붙여넣어지고, 에이전트가 쓴 스크립트에 하드코딩되고, 세 번째 커밋에서 딸려 올라가는 파일에 적힙니다.
AgentsRoom 시크릿 관리자는 이 값들이 머물 자리를 하나로 만듭니다. 시크릿은 이름과 값의 쌍입니다. 한 번 추가하면 AgentsRoom이 디스크에 닿기 전에 운영체제 키체인으로 암호화합니다. 보관소 전체는 홈 폴더에 있는 파일 하나이고, 소유자 전용 권한으로 기록되며, 만들어진 머신을 절대 떠나지 않습니다.
그다음부터는 값을 다시 다룰 일이 없습니다. 개발 명령이나 에이전트 환경에 {{secret:NAME}}라고 쓰면, 그 명령이나 에이전트가 시작될 때 AgentsRoom이 실제 값으로 바꿔 넣습니다. 에이전트는 이름 목록을 확인하고 그중 하나를 주입해 달라고 요청할 수 있습니다. 일하기에는 그것으로 충분하고, 값 자체는 결코 받지 못합니다.
AI 에이전트로 가득한 머신을 위해 만든 보관소
운영체제가 암호화하고, 이름으로 참조하고, 가능한 한 마지막 순간에 치환합니다.
OS 키체인이 암호화합니다
모든 값은 Electron safeStorage를 통해 암호화됩니다. 암호화 키를 AgentsRoom이 아니라 운영체제 키체인이 갖고 있다는 뜻입니다. 앱은 암호문만 저장하고 복호화는 시스템에 요청합니다. 이미 자격 증명을 맡기고 있는 다른 애플리케이션과 똑같은 방식입니다.
보관소 파일 하나, 소유자 전용
모든 시크릿은 ~/.agentsroom/secrets.json 하나에 담깁니다. 소유자 전용 권한(0600)으로 기록되고, 변경할 때마다 원자적으로 교체됩니다. 충돌이 나도 절반만 쓰인 파일이 남지 않고, 같은 머신의 다른 사용자 계정은 이 파일을 열 수 없습니다.
값이 아니라 이름으로 참조합니다
저장한 시크릿은 {{secret:NAME}} 형태로 사용합니다. 개발 터미널의 명령줄에서도, 에이전트에 전달하는 환경에서도, 원래라면 자격 증명을 직접 입력했을 모든 자리에서요. 화면에 보이는 것도, 동료에게 보여 줄 수 있는 것도 이름뿐입니다.
실행 시점에, 메인 프로세스에서 치환
치환은 프로세스가 시작될 때 Electron 메인 프로세스 안에서 일어납니다. 치환된 값은 실행되는 명령의 환경으로만 들어가고 다른 어디에도 가지 않습니다. 로그에도, 인터페이스에도, 디스크의 파일에도 남지 않습니다.
에이전트는 값이 아니라 이름을 봅니다
AI 에이전트는 시크릿 이름을 나열하고, 곧 실행할 무언가에 그중 하나를 주입해 달라고 요청할 수 있습니다. 값을 에이전트에, 인터페이스 계층에, 또는 MCP를 통해 돌려주는 코드 경로는 존재하지 않습니다. 에이전트는 참조를 다루고, 값은 앱이 다룹니다.
키체인이 없으면 저장도 없습니다
머신이 동작하는 OS 키체인을 제공하지 못하면, AgentsRoom은 평문으로 물러서는 대신 시크릿 저장을 거부합니다. 조용히 평범한 파일로 전락하는 보관소는 보관소가 아예 없는 것보다 나쁘기 때문에, 그런 대체 경로는 아예 만들지 않았습니다.
기본 설정이 아니라 설계로 머신 로컬입니다
시크릿은 AgentsRoom 서버로 전송되지 않습니다. 확인해야 할 동기화 스위치도, 해제해야 할 클라우드 보관소도, 내 디스크 말고 다른 곳에 남는 키 백업도 없습니다. 보관소는 그 머신에서 만들어지고, 그 머신의 운영체제 키체인이 보관하는 키로 암호화되며, 그대로 머뭅니다. 파일만 복사해 간다고 해서 다른 머신에서 열 수 있는 것이 아닙니다.
시크릿을 사용하는 것과 읽는 것의 분리는 프롬프트에 적은 지시가 아니라 코드로 강제됩니다. 인터페이스 계층도, MCP 도구도, 모든 에이전트도 시크릿을 이름으로만 이야기합니다. 참조를 값으로 바꾸는 것은 Electron 메인 프로세스뿐이고, 그것도 사용자가 시작을 요청한 프로세스의 환경을 구성하는 동안에만 일어납니다. 자격 증명을 조심히 다루라고 에이전트에게 당부하는 것은 기대입니다. 자격 증명을 돌려주는 함수가 아예 없는 것은 보장입니다.
유료 API나 실제 데이터베이스를 상대로 에이전트를 일하게 두어도 괜찮은 이유가 바로 이것입니다. 에이전트는 STRIPE_SECRET_KEY라는 이름의 시크릿이 있다는 사실을 알고, 실행하려는 명령에 그것을 주입해 달라고 요청할 수 있습니다. 하지만 출력할 수도, 자기가 쓰는 파일에 복사할 수도, 다른 곳에 저장되는 대화로 흘릴 수도 없습니다.
붙여넣은 토큰에서 이름 붙은 시크릿으로
세 단계면 끝나고, 값은 다시 나타나지 않습니다.
시크릿을 한 번 추가하세요
이름을 정하고 값을 마지막으로 한 번 붙여넣으세요. AgentsRoom이 OS 키체인으로 암호화해 ~/.agentsroom/secrets.json 보관소에 소유자 전용으로, 원자적으로 기록합니다. 쓸 만한 키체인이 없는 머신이라면 그 사실을 알리고, 평문을 쓰는 대신 거부합니다.
{{secret:NAME}}로 참조하세요
값이 들어가던 자리에 참조를 쓰세요. 개발 서버를 띄우는 명령이든, API 토큰이 필요한 에이전트의 환경이든 마찬가지입니다. 설정에 저장되는 것은 참조이고, 그것은 그대로 들여다봐도 안전합니다.
실행 시점 치환은 AgentsRoom에 맡기세요
명령이나 에이전트가 시작되면 메인 프로세스가 해당 프로세스의 환경에서 참조를 실제 값으로 바꿉니다. 도구는 필요한 것을 받고, 그것을 운전한 에이전트는 여전히 이름만 알고 있습니다.
시크릿 관리자가 더는 선택이 아닌 순간
붙여넣은 자격 증명이 진짜 사고로 바뀌는 상황들.
진짜 키가 필요한 개발 서버
결제 키와 데이터베이스 비밀번호가 없으면 개발 서버가 뜨지 않습니다. 자격 증명 대신 실행 명령에 {{secret:NAME}}를 넣으면, 그 명령은 통화 중에 화면에 띄워 놓아도 조마조마할 일이 없는 것이 됩니다.
유료 API를 호출하는 에이전트
에이전트가 작업하는 동안 서드파티 API에 닿을 토큰이 필요합니다. 시크릿을 이름으로 환경에 추가하세요. 에이전트는 동작하는 환경을 얻고, 토큰은 프롬프트에도, 대화에도, 에이전트가 다음에 쓰는 무엇에도 남지 않습니다.
더는 저장소에 들어가지 않는 키
흔한 사고는 설정 파일에 적힌 자격 증명이 나중 커밋에 휩쓸려 올라가는 것입니다. 시크릿을 이름으로 참조하면 저장소에 추적되는 파일에는 이름만 남으므로, 브랜치를 푸시해도 새어 나갈 것이 없습니다.
머신 하나, 프로젝트 여럿
OS 키체인이 보호하고 내 사용자 계정만 읽을 수 있는 보관소 하나가 여는 모든 프로젝트를 함께 담당합니다. 프로젝트마다 필요한 이름을 참조할 뿐, 어느 프로젝트도 자격 증명 사본을 따로 흩어 두지 않습니다.
읽지도 못하는 시크릿을 에이전트가 어떻게 쓰나요?
자격 증명을 사용하는 것과 읽는 것은 서로 다른 동작이고, AgentsRoom은 에이전트에게 앞의 것만 구현해 두었기 때문입니다. 보관소는 MCP에 정확히 하나의 도구, secrets_list로만 노출되고, 그 도구가 반환하는 것은 이름입니다. 거기서부터 에이전트는 필요한 명령이나 환경에 {{secret:NAME}}를 씁니다. 그리고 그 치환을 수행하는 것은 에이전트가 아니라 앱입니다.
의도적으로 빠져 있는 것은 반대 방향입니다. 어떤 MCP 도구도 시크릿 값을 반환하지 않고, 인터페이스 계층은 값을 받는 일이 없으며, 값을 대화로 되돌려 그려 내는 것도 없습니다. 참조를 실제 값으로 바꾸는 일은 프로세스가 실행되는 순간 Electron 메인 프로세스 안에서 일어나고, 결과는 그 프로세스의 환경으로만 들어갑니다.
실질적인 효과는 이렇습니다. 에이전트는 자격 증명을 단 하나도 자기 컨텍스트에 들이지 않고 실제 데이터베이스를 상대로 테스트 스위트를 돌리고, 유료 API를 호출하고, 스테이징에 배포할 수 있습니다. 나중에 지울 것도 없습니다. 애초에 노출된 적이 없으니까요.
AgentsRoom MCP 살펴보기자주 묻는 질문
내 시크릿은 어디에 저장되나요?
홈 폴더의 ~/.agentsroom/secrets.json 파일 하나에 저장됩니다. 각 값은 Electron safeStorage를 통해 암호화되므로 암호화 키는 운영체제 키체인이 보관합니다. 파일은 소유자 전용 권한(0600)으로 기록되고 원자적으로 교체되기 때문에, 충돌이 나도 절반만 쓰인 상태로 남지 않습니다.
AI 에이전트가 내 시크릿을 읽을 수 있나요?
아니요. 에이전트는 시크릿 이름을 나열하고 명령이나 환경에 그중 하나를 주입해 달라고 요청할 수 있습니다. 일을 처리하는 데는 그것으로 충분합니다. 값을 에이전트에, 인터페이스 계층에, 또는 MCP를 통해 돌려주는 코드 경로는 없습니다. 치환은 Electron 메인 프로세스에서만 일어납니다.
내 시크릿이 AgentsRoom 서버로 동기화되나요?
전혀 아닙니다. 보관소는 설계상 머신 로컬입니다. 시크릿은 AgentsRoom 서버로 전송되지 않고, 클라우드에 백업되지 않으며, 모바일 앱으로 중계되지도 않습니다. 내 머신에서 만들어지고, 내 머신을 위해 암호화되며, 그 자리에 그대로 남습니다.
명령에서 시크릿을 어떻게 사용하나요?
값이 들어갔을 자리에 {{secret:NAME}}를 쓰세요. 개발 터미널의 명령이든 에이전트의 환경이든 마찬가지입니다. 해당 프로세스가 실행될 때 AgentsRoom이 실제 값으로 바꿔 넣고, 설정에 남는 것은 참조입니다.
내 머신에 OS 키체인이 없으면 어떻게 되나요?
AgentsRoom은 시크릿 저장을 거부합니다. 값을 디스크에 평문으로 쓰는 대체 경로는 의도적으로 두지 않았습니다. 조용히 평범한 파일로 전락하는 보관소는 암호화 없이 암호화의 안심만 주기 때문입니다.
이 기능이 프로젝트의 환경 파일을 대체하나요?
AI 에이전트가 끼어들면서 아파지는 부분을 해결합니다. 자격 증명을 파일과 프롬프트와 대화 밖에 두는 일이죠. 프로젝트는 런타임에 필요한 것을 그대로 유지하고, 값 자체는 보관소에 살면서 실행 시점에 주입됩니다. 에이전트가 읽을 수 있고 커밋이 휩쓸어 갈 수 있는 파일에 놓이는 대신에요.
누군가 보관소 파일을 복사하면 읽을 수 있나요?
다른 머신에서는 읽지 못합니다. 값은 운영체제 키체인이 보관하는 키로 암호화되어 있어서, 파일만 떼어 가면 그냥 암호문입니다. 게다가 보관소는 소유자 전용 권한으로 기록되므로 같은 머신의 다른 사용자 계정도 열 수 없습니다.
에이전트는 시크릿에 어떤 MCP 도구를 사용하나요?
secrets_list이고, 그것 하나뿐입니다. 이 머신에 저장된 시크릿의 이름을 반환하므로, 에이전트는 무엇이 있는지 알아낸 뒤 개발 명령이나 자기가 시작하는 프로세스의 환경에서 그중 하나를 {{secret:NAME}}로 참조할 수 있습니다. 값을 반환하는 도구가 없으니 에이전트가 출력할 것도, 자기가 쓰는 파일에 복사할 것도, 대화로 흘릴 것도 없습니다. 필요한 시크릿이 없을 때는 채팅에 붙여넣어 달라고 하는 대신 앱에서 추가해 달라고 요청합니다.
이런 기능도 마음에 드실 거예요
데이터베이스 연결
MySQL과 MariaDB 연결을 저장하고, SSH 터널이나 AWS SSM 세션으로 프라이빗 서브넷의 데이터베이스에 닿고, AI 에이전트가 MCP로 질의하게 하세요. 기본은 읽기 전용, 호출당 구문 하나, 결과 집합에는 상한이 있으며, 비밀번호는 에이전트에 전달되지 않습니다.
SSH 연결
SSH 연결을 저장하고, SSH로 내장 터미널을 열어 Claude Code, Codex, Antigravity CLI를 원격 서버나 VPS에서 바로 실행하세요. SSH 키 또는 비밀번호 인증, 프로젝트별 연결 프로필을 지원하며, 별도의 SSH 클라이언트가 필요 없습니다.
Dev Terminals
프로젝트별 터미널 관리자이자 프로세스 실행기. 백엔드, 프론트엔드, 워커를 한 번의 클릭으로 시작하고, 시크릿은 직접 입력하는 대신 실행 시점에 주입하세요.
AgentsRoom MCP
에이전트가 AgentsRoom 자체를 조종하게 하는 MCP 서버. 프로젝트, 터미널, 백로그, 연결까지, 함께 따라오는 가드레일과 함께요.
에이전트에게 줄 것은 접근 권한이지 키가 아닙니다
AgentsRoom을 다운로드하고, API 키와 비밀번호를 OS 키체인으로 암호화한 보관소로 옮긴 뒤, 나머지 모든 곳에서는 이름으로 참조하세요.
컴패니언 앱: 이동 중에도 에이전트를 모니터링
Claude, Codex, Antigravity CLI 또는 다른 AI 공급자를 사용하세요.
버그와 요청을 공개 백로그로 바로 보내세요.
AgentsRoom의 실제 모습.