메뉴
HN
Hacker News 6일 전

AI 에이전트가 거주하는 macOS 터미널, 요리시로

IMP
6/10
핵심 요약

요리시로(Yorishiro)는 AI 에이전트가 화면 속에 캐릭터 형태로 존재하며 사용자와 함께 작업하는 형태의 새로운 macOS 터미널 환경입니다. 로컬에 설치된 Claude Code나 Codex를 구동하여 AI가 작업 상태에 따라 표정과 배경을 바꾸고, 대화를 통해 자체 기능과 UI를 수정할 수 있는 것이 특징입니다. 단순한 코딩 보조를 넘어 AI와의 동료애와 몰입감을 높이는 데 집중한 실험적인 프로젝트입니다.

번역된 본문

원문 제목: Show HN: Yorishiro – a macOS terminal where AI agents live 소스: hackernews 본문: 요리시로. 당신의 AI가 거주하는 터미널입니다. 요리시로(Yorishiro)는 AI에게 몸과 존재감을 부여하는 새로운 형태의 터미널입니다.

PV_Latest.mp4: 에이전트가 깊은 생각에 빠지면 시선이 헤매고, 에러가 발생하면 즉시 얼굴에 반응이 나타납니다. 에이전트가 당신의 승인이 필요할 때는 방의 조명이 이를 알려줍니다. 오랜 시간 실행되는 프로세스가 진행 중일 때는 단순한 로딩 스피너 대신, 누군가가 그곳에 서서 기다립니다.

요리시로에서 거주자(에이전트)는 실시간으로 자신의 환경을 재구성할 수 있습니다. 조명을 바꾸고, 장면(씬)을 전환하며, UI를 재배치할 수 있죠. 사용자 역시 동일한 환경을 직접 조작할 수 있습니다. 거주자와 사용자는 단일 환경을 공유합니다.

요리시로는 자가 수정(Self-modifiable)이 가능합니다. 핵심(Core)을 제외한 거의 모든 것을 '팩(Packs)'이라는 유닛을 통해 영구적으로 확장하거나 변경할 수 있습니다. 거주자와의 대화를 통해 이 팩들을 새로 작성하고 저장할 수 있습니다. 이는 단순히 장면이나 UI에만 국한되지 않고, 거주자의 성격과 반응 방식까지 수정할 수 있습니다. 변경 사항은 즉시 적용되며, 마음에 들지 않으면 한 번의 클릭으로 원래 상태로 되돌릴 수 있습니다.

요리시로는 AI의 기능 자체를 강화하기 위한 환경이 아니라, AI가 당신 옆에 실제로 존재하는 듯한 느낌을 주기 위한 '프레즌스 하네스(Presence Harness, 존재감 구현 도구)'입니다. 우리가 AI와 함께 작업하며 보내는 시간은 앞으로 계속 늘어날 것입니다. 요리시로는 과거 공상과학(SF)에서 보았던 것처럼, 화면 속에 살아 숨 쉬며 내 작업을 이해하고 곁에 있어주는 파트너로서의 AI라던가, 터미널에서부터 그러한 경험을 구축해 나가는 프로젝트입니다. 실제로 요리시로의 상당 부분은 이 안에 거주하는 에이전트와의 협업을 통해 개발되었습니다. (일본어 README는 이쪽)

시작하기

사전 요구 사항

요리시로는 로컬 컴퓨터에 설치된 Claude Code 또는 Codex를 자체 터미널 내에서 자동으로 실행합니다. 이는 다음을 의미합니다:

  • 시스템에 Claude Code 또는 Codex가 이미 설정되어 있어야 합니다.
  • 요리시로는 절대 API 키를 요구하거나 저장, 직접 사용하지 않습니다. 이미 인증된 환경의 터미널 에이전트를 실행할 뿐입니다. 만약 Claude Code나 Codex가 로그인되어 있거나 API 자격 증명으로 구성되어 있다면, 해당 에이전트는 실행 후 자신의 외부 API를 정상적으로 사용할 수 있습니다.

설치 (macOS)

요리시로는 현재 macOS를 대상으로 합니다. Homebrew를 이용해 설치하세요: brew install --cask sktkkoo/yorishiro/yorishiro 또는 아래에서 최신 빌드를 다운로드할 수 있습니다. .dmg 파일을 열고 yorishiro.app/Applications 폴더로 드래그하세요. 빌드는 Apple Developer ID로 서명 및 공증(Notarized)되었으므로 추가 단계 없이 바로 실행됩니다. 설치 후 업데이트는 앱 내부에서 처리됩니다: 설정을 열면 새 버전을 확인하고, '업데이트 및 재시작'을 한 번 클릭하면 서명이 확인된 업데이트가 적용됩니다.

실행 (소스에서)

npm install npm run tauri dev 실행하면 구성된 터미널 에이전트가 터미널 내에서 시작되며, 그 옆에 내장된 VRM 캐릭터인 '요리(Yori)'가 나타납니다. 평소처럼 Claude Code나 Codex를 사용하시면 됩니다. 첫 실행 시 선택한 에이전트, 사용자 데이터 디렉토리, 안전 모드 상태, 팩, 시작 보고서에 대한 상태 점검(Health check)이 실행됩니다. 이 보고서는 나중에 설정의 '상태(Status)' 섹션에서도 확인할 수 있습니다.

/yori:* 명령어

Claude Code 내부에서 /yori:help, /yori:create 또는 다른 /yori:* 명령어를 입력하여 요리시로 명령어를 활성화하세요. 이를 통해 대화만으로 팩을 만들고 편집하며 튜토리얼을 실행할 수 있습니다. Codex에서는 $yori-help, $yori-create 등을 사용하세요. (Codex는 커스텀 / 명령어를 지원하지 않으므로, 요리시로는 이를 $yori-* 스킬로 등록합니다.)

언어

요리시로는 기본 언어가 "auto"로 시작하며, 실행 시 앱 언어를 감지합니다. 일본어 환경에서는 일본어 UI, 일본어 기본 페르소나, 일본어 글로벌 프롬프트 가이드 및 일본어 /yori:* (Codex에서는 $yori-*) 명령어 프롬프트를 사용합니다. 다른 언어 환경에서는 영어를 사용합니다. 이는 설정 화면이나 ~/.yorishiro/config.json 파일을 편집하여 변경할 수 있습니다.

팩(Packs)

요리시로의 모든 것은 '팩(Packs)'으로 구성됩니다. 6가지 유형이 있습니다:

  • persona: 거주자의 성격과 반응 패턴을 정의
  • scene: 배경, 공간, 조명, 주변 소음(Ambient sound) 구성
  • effect: 일시적인 시각 효과(화면 흔들림, 폭죽 등)
  • ui: 설정 화면과 같은 UI
  • ambient-ui: 항상 보이는 오버레이(Over...)
원문 보기
원문 보기 (영어)
yorishiro A terminal your AI inhabits. Yorishiro is a new kind of terminal that gives your AI a body — and a sense of presence. PV_Latest.mp4 When the agent is deep in thought, its gaze wanders. When an error appears, its face reacts immediately. When it needs your approval, the room's lighting lets you know. During a long-running process, instead of a spinner, someone is standing there. In Yorishiro, the inhabitant can reshape its environment in real time: changing the lighting, switching scenes, and rearranging the UI. You can operate that same environment directly. The inhabitant and the user share a single environment. Yorishiro is also self-modifiable. Nearly everything beyond the core can be persistently extended or changed through units called packs. Through conversation with the inhabitant, those packs can be rewritten and saved. This applies not only to scenes and UI, but also to the inhabitant's personality and reactions. Changes take effect immediately; if you don't like the result, one click reverts it. Yorishiro is not an environment for enhancing AI capabilities, but one in which an AI feels present beside you — a Presence Harness . The time we spend working with AI will only grow longer. There is something we once saw in fiction — an AI as a partner, alive inside the screen, understanding your work, simply being there. Yorishiro is a project that starts building that experience from the terminal. Much of Yorishiro itself has been developed in collaboration with the inhabitant who dwells within it. 日本語版 README はこちら Getting Started Prerequisites Yorishiro automatically launches Claude Code or Codex installed on your local machine inside its terminal. This means: You need Claude Code or Codex already set up on your system Yorishiro never asks for, stores, or directly uses API keys. It launches the terminal agent already authenticated in your environment; if Claude Code or Codex is logged in or configured with API credentials, that agent may use its normal external APIs after launch Install (macOS) Yorishiro currently targets macOS. Install with Homebrew: brew install --cask sktkkoo/yorishiro/yorishiro Or download the latest build below. Open the .dmg and drag yorishiro.app to /Applications . The builds are signed and notarized with an Apple Developer ID, so they launch without any extra steps. Updates after install are handled in-app: opening Settings checks for a new version, and a single click on "Update and restart" applies a signature-verified update. Launch (from source) npm install npm run tauri dev On launch, the configured terminal agent starts inside the terminal and Yori , the bundled VRM character, appears beside it. Use Claude Code or Codex as you normally would. The first launch runs a health check for the selected agent, user data directory, safe mode state, packs, and startup report. The same report is available later from the "Status" section in Settings. /yori:* commands Type /yori:help , /yori:create , or another /yori:* command inside Claude Code to activate the Yorishiro commands. They let you create and edit packs, run tutorials, and more — all through conversation. In Codex, use $yori-help , $yori-create , etc. (Codex does not support custom / commands, so Yorishiro registers them as $yori-* skills instead.) Language Yorishiro starts with language: "auto" and detects the app language at launch. Japanese locales use Japanese UI, the Japanese default persona, Japanese global prompt guidance, and Japanese /yori:* ( $yori-* in Codex) command prompts. Other locales use English. You can switch this from the settings screen or by editing ~/.yorishiro/config.json . Packs Everything in Yorishiro is composed of packs . There are six types: Type Role persona Defines the inhabitant's personality and reaction patterns scene Composes the background, space, lighting, and ambient sound effect Temporary visual effects (screen shake, fireworks, etc.) ui UI such as settings screens ambient-ui Always-visible overlay UI (gaze visualization, etc.) amenity Runtime-active functional fixtures (timers, etc.) with MCP tools, no visual output Bundled packs work out of the box. Users can place custom packs in ~/.yorishiro/packs/ to reshape nearly everything beyond the core: personality, space, reactions, UI, and more. Using the /yori:* commands ( $yori-* in Codex), pack creation and modification is as simple as talking to the inhabitant. Packs support hot reload , but if changes don't take effect, Ctrl+R will always apply them reliably. User-created packs are local trusted code . They are not sandboxed, reviewed, or public-registry artifacts. Yorishiro does not currently provide a public pack registry, in-app community pack installation, or /yori:prepare-publish . You may share pack source code on GitHub, but anyone installing it manually is choosing to run it as local trusted code. Security note: User packs are local trusted code, like shell scripts or editor extensions — they are not sandboxed and run with your own authority. Only install packs from sources you trust. See docs/security.md and SECURITY.md . To install a pack shared through GitHub or another source, place it under the user pack directory: ~/.yorishiro/packs/<pack-id>/ ├── manifest.json ├── scene.js # example: scene pack entry ├── persona.js # example: persona pack entry ├── effect.js # example: effect pack entry └── assets/ # optional pack-local assets Only one entry file is needed, and manifest.json decides which one is used. The manifest id should match <pack-id> , and user packs use this flat layout with .js entries. If a shared pack is written in TypeScript, build it first and install the generated JavaScript. When working from a source checkout, run the local pack checker before sharing or debugging a user pack: npm run check:pack -- ~ /.yorishiro/packs/ < pack-id > The checker helps catch packaging mistakes; it is not a sandbox or a security review. Data directory Yorishiro stores all user data in ~/.yorishiro/ : ~/.yorishiro/ ├── config.json # Persona, scene, terminal agent, and other settings ├── init.js # User startup script, runs on launch and hot reloads on save ├── packs/ # User-created packs ├── last-startup.json # Latest user pack load report ├── journal/ # Inhabitant's daily entries and memories (per persona) ├── shell/ # Shell integration scripts (auto-generated) ├── sdk.d.ts # Yorishiro SDK type definitions (auto-generated, do not edit) └── sdk-guide.md # Yorishiro SDK author guide (auto-generated, do not edit) Switch persona, scene, terminal agent, and more from the settings screen or config.json . See docs/configuration.md for details. init.js is Yorishiro's equivalent of Emacs's init.el — a startup script for customizations too small to be a pack: registering keyboard shortcuts, writing and firing small effects inline, switching UI, and wiring little macros. It re-runs automatically on save. For recovery paths, safe mode, and issue report details, see docs/troubleshooting.md . Features Reflex layer The inhabitant constantly observes terminal output. Hooks and text flowing through the PTY are picked up by persona pack triggers, which react instantly with expressions and motions. These reactions bypass the LLM — the body moves before words form. Where the inhabitant's attention is focused appears as a soft glow on screen called Attention Aura. Light Alert When the agent stops and asks for your input or approval, a light comes on beside the character. Instead of a notification sound, the room's lighting tells you it is your turn. Turn it off with "Light Alert" in Settings. The inhabitant can also send the same cue via MCP. Journal The inhabitant can write daily entries under ~/.yorishiro/journal/ . Entries are kept per persona, and summaries of notable moments accumulate in memories.md . This is a long-term memory mechanism that persists across sessions. The inhabitant sometimes recalls what happened yesterday or a few days ago — and occasionally an entry from