NEW v2.8.3 — 터미널 붙여넣기 이중 입력 수정 로컬-우선 AI 프로젝트 매니저

AI 코딩 에이전트가 코드를 쓰는 동안, 당신은 기록·관리·검증만 합니다.

Claude Code · Codex · Cursor · Gemini CLI 등 11종 에이전트가 만든 변경을 자동으로 기록하고, 할루시네이션을 로컬 diff로 즉시 검증하고, 쌓인 기록을 스탠드업·PR 본문·회고로 되돌려줍니다. 클라우드도, 계정도, 텔레메트리도 없습니다.

> /plugin marketplace add bunhine0452/Ocul-PM
번들 < 60MB Tauri 네이티브 (Electron 아님) 콜드 스타트 < 1.5초 Windows 는 추후 지원
.oculpm/journal/20260711 자동 기록 중
기능 추가 16:42
워크데이 경계 기준 일일 롤오버 구현
Claude Code · Opus 4.8·3개 파일+127−13
버그 수정 15:08
자정 직후 entry가 두 번 나타나던 문제 수정
Codex · GPT-5·1개 파일+9−14
에러 사이클 14:21
tree-sitter 파서 초기화 실패 → 재시도 후 복구
Cursor·3회 재시도+6−1
오늘 6건 기록 · 모두 markdown · git 친화
플랫 파일 SSOT
DB lock-in 없음
새 업데이트 · v2.5 → v2.8

이제 계획이 구현을 끌고 갑니다.

기록은 시작일 뿐이었습니다. Claude Code 플러그인이 설치 문턱을 두 줄로 낮추고, 플래너의 ▶실행 버튼이 계획 항목을 곧바로 에이전트 실세션으로 만듭니다 — 백미러가 핸들이 되는 흐름. v2.8 은 여기에 스킬 샵프로젝트 관리 화면을 더했습니다.

  • v2.8.3 — 터미널 붙여넣기 수정 · 내장 터미널에 붙여넣은 내용이 두 번 들어가던 문제를 고쳤습니다. 중복만이 아니라 두 번째 사본은 줄바꿈이 날것으로 전달돼 각 줄이 명령으로 실행될 수 있었습니다.
  • v2.8.2 — 터미널 한국어 수정 · 내장 터미널에서 한글만 영문보다 크게 보이던 문제(폰트 자간 정보를 터미널 격자에 맞춰 재생성 — 글자 크기는 그대로, 용량은 440KB→279KB)와, 한글 입력기가 켜져 있을 때 영문·스페이스가 두 번 입력되던 문제를 고쳤습니다. 스페이스가 NBSP로 셸에 전달되던 것도 함께.
  • v2.8.1 — 프로젝트 관리 화면 · 등록된 프로젝트를 평면 표로 펼쳐 이름 변경·제거·추가를 한자리에서. 체크박스로 여러 개를 한 번에 제거하고, 폴더의 .oculpm·AGENTS.md 삭제 여부는 따로 고릅니다(기본 꺼짐). 첫 화면이 접어 둔 조용한 프로젝트도 여기선 전부 보입니다.
  • v2.8.0 — 스킬 샵 · 프로젝트 스택을 감지(매니페스트 기반, LLM 0)해 검증된 제3자 스킬 25종(MIT·커밋 고정 사본)을 추천 — 검색·미리보기 후 원클릭 설치. 배달 게이트가 "코드 변경 있는데 일지 없음"을 세션당 1회 잡아 에이전트에게 일지를 시킵니다.
  • v2.7.0 — 벤토 콕핏 홈 · 첫 화면의 이어서 일하기 타일이 다음 할 일·최근 기록·14일 활동 추이·마지막 에이전트를 한눈에. 일지 없이 끝난 세션은 Today 가 알려줍니다.
  • v2.6.0 — 회고도 Claude Code 가 · 회고 화면 [Claude Code 로] 버튼 = 프롬프트 프리필→세션이 회고 파일 작성. 반복 태그는 스킬 후보로 승격 제안, project_init 로 앱 없이 새 프로젝트 추적 시작.
  • Claude Code 플러그인/plugin 두 줄이면 훅 브리지 · MCP 도구 5종 · 스킬 5종이 전 프로젝트에. 앱이 없어도 기록이 시작됩니다.
  • ▶실행 디스패치 — 플랜 항목을 누르면 항목+연결 일지+갱신 지시가 조립된 프롬프트가 터미널에 프리필. Enter 한 번으로 실세션이 그 항목을 잡습니다.
  • 3단계 계획 + project-inception — 하위 작업 중첩(부모 상태는 자동 롤업), 아이디어는 웹 리서치→근거 실린 대화로 사양을 확정해 설계 산출물 4종으로 시드.
  • 에이전트 토큰 60% 다이어트 — 상시 주입 규칙이 ≈2,900→≈1,150 토큰. 준수를 담보하던 규칙은 전부 유지.
플래너 → 터미널 디스패치
Phase 1 — 환경 구성·스캐폴드
리서치 확정 버전으로 셋업 auto
이메일 로그인 happy-path ▶ 실행
plan_dispatch_prompt ✓ 프롬프트 조립됨
claude "플랜 항목 #login-happy-path 를 진행하라 — 연결 일지 2건 참조…"
● 항목·일지·갱신 지시가 프리필됨 — Enter 로 시작
◆ 완료 시 plan_update 로 글리프 자동 갱신
계획 → 실행 → 기록 → 계획 갱신, 한 루프로
The gap

에이전트는 빠르지만, 며칠 뒤엔 무엇이 왜 바뀌었는지 추적이 끊깁니다.

Ocul-PM이 메우는 간극

에이전트가 코드를 쓰고, Ocul-PM이 그들이 한 일을 사람이 읽을 수 있는 기록으로 남깁니다.

?

어제 Claude에게 시킨 리팩토링이 어떤 파일들을 건드렸더라.

?

Cursor가 "수정했다"고 한 코드가 실제로 동작하나, 다시 확인해야 한다.

?

여러 에이전트를 번갈아 쓰니 변경 이력이 도구마다 흩어진다.

?

일주일 지나면 "내가 이걸 왜 만들었지?"에 답할 수 없다.

핵심 기능

에이전트의 분 단위 작업을, 읽을 수 있는 기록으로.

기록·검증·계획·회고가 12개 화면, 한 앱 안에서. 전부 당신의 디스크 위에서 일어납니다.

Claude Code Codex CLI Gemini CLI Antigravity pi Cursor Windsurf GitHub Copilot aider Cline Zed 초록 5종은 설정 없이 바로, 나머지는 설정에서 규칙 파일만 켜면 됩니다
.oculpm/journal/

자동 작업 일지

에이전트는 작업을 끝낼 때마다 규칙에 따라 markdown 한 개를 남깁니다. 어떤 에이전트가 어떤 모델로 작업했는지까지 기록되고, 일지가 없던 저장소는 git 히스토리에서 한 번에 백필합니다. 플랫 파일 SSOT라 DB lock-in이 없습니다.

--- 20260711/0926_feature_rollover.md
trigger: feature
agent: claude-code · Opus 4.8
files: 3 # +127 −13
title: 워크데이 일일 롤오버 구현
할루시네이션 1차 방어선

변경 파일 로컬 diff

에이전트가 "수정했다"고 주장하는 모든 파일을 네트워크 호출 없이 즉시 비교합니다. 일지별 diff는 그 시점 그대로 보관되고, 바뀐 파일이 어디까지 영향을 주는지도 함께 계산합니다.

const fileCount = files.length;
+ const added = files.reduce((s,f)=>s+f.add,0);
+ const removed = files.reduce((s,f)=>s+f.del,0);
− return <span>{fileCount} files</span>;
j/k 파일 이동 · / diff 안 검색 · n/N 매치 점프
Today

일일 브리프

오늘 바뀐 것·미커밋 변경·커밋 그래프를 워크데이 경계로 정리. 일지에 안 적힌 변경은 정직성 감사가 잡아냅니다.

6
오늘 기록
13
변경 파일
회고 · 산출물

기록이 산출물로

쌓인 일지로 스탠드업·PR 본문·주간 보고를 만듭니다. AI가 있으면 다듬고, 없어도 기본 형식으로 항상 동작합니다.

스탠드업어제 5 · 오늘 2 · 다음 3복사
PR 본문일지 4건 → 요약·검증생성
주간 보고출시 3 · 막힘 1생성
Planner · 3-depth

살아있는 계획

마일스톤→작업→하위 작업 3단계로 설계하고, 부모 상태는 하위에서 자동 롤업. 항목마다 근거 일지가 링크되고, 자동 화해를 켜면 계획이 스스로 갱신됩니다.

워크데이 롤오버 안정화
타임존 경계 계산 auto
DST 전환일 검증
v2.5+ · /plugin

Claude Code 플러그인

두 줄이면 훅 브리지·MCP 도구 5종·스킬 5종이 전 프로젝트에. 앱 없이도 기록이 시작됩니다.

> /plugin marketplace add bunhine0452/Ocul-PM
> /plugin install oculpm@oculpm
◆ hooks · mcp · skills 구성됨
v2.5+ · 디스패치

계획이 실행이 됩니다

플랜 항목의 ▶실행을 누르면 항목+일지 맥락이 조립된 프롬프트가 터미널에 프리필. Enter 한 번으로 에이전트가 그 항목을 잡습니다.

1 항목에서 ▶실행
2 프롬프트 프리필
3 Enter → 실세션
macOS 상단바

메뉴바 상주

세션이 활성이면 상단바 아이콘이 움직이고, 클릭 한 번에 오늘의 세션·일지·플랜이 5초 브리핑으로. 창을 닫아도 지켜봅니다.

세션claude-code · 12분째활성
오늘일지 6 · 파일 13보기
코드 맵

의존성이 보입니다

import·호출·상속 관계를 그래프로. 파일을 고르면 "바꾸면 몇 개 파일에 영향"이 먼저 보입니다.

manager.rs — 바꾸면 12개 파일에 영향
.oculpm/discussion/

결정 전 토의 문서

큰 결정은 하기 전에 정리합니다. 문제 정의와 후보안 비교를 회의록처럼 남기고, 결론은 버튼 하나로 계획이 됩니다.

1 문제 정의
2 후보안 A/B — 장단·비용
3 결론 → 플래너로 승격
⌘K · ⌘1~0 · ⌘P

어디로든 가기

화면 이동은 물론, 일지·계획·토의·문서를 제목으로 검색해 바로 엽니다. diff 검토도 계획 토글도 키보드로 끝납니다.

⌘K 롤오버
자정 직후 entry 중복 수정 일지
워크데이 롤오버 안정화 계획
workday-spec.md 문서
로컬 임베딩 · FTS5

코드 검색 3모드

의미(임베딩) · 심볼(AST) · 텍스트(FTS5 전문 인덱스). 임베딩이 외부로 나가지 않습니다.

멀티-LLM 패널

프로젝트를 아는 AI

코드·일지·계획·git 맥락을 함께 보내는 채팅. 호출이 실패하면 폴백 체인이 다음 모델을 시도합니다. 키는 OS 키체인에만.

Claude GPT Gemini OpenRouter
portable-pty · xterm.js

내장 터미널

창 전환 없이 같은 앱에서 에이전트를 돌리며, 일지가 옆에서 쌓이는 걸 봅니다.

claude-code "롤오버 구현"
● 3 files changed · 5 tests
◆ journal entry 작성됨
시작하기

시작하는 길은 , 기록은 하나.

어느 쪽으로 시작해도 일지·계획은 프로젝트의 .oculpm/ 마크다운으로 쌓입니다 — 나중에 다른 쪽을 더해도 그대로 이어집니다.

데스크톱 앱으로 시작

타임라인·diff·회고·코드 맵까지, 12개 화면 전부.

  1. 1
    .dmg 받아서 드래그Apple Silicon · 이후 버전은 자동 업데이트
  2. 2
    프로젝트 폴더 열기규칙 파일(AGENTS.md)과 .oculpm/ 이 자동 구성
  3. 3
    에이전트를 부르기작업이 끝날 때마다 일지가 옆에 쌓입니다
macOS 다운로드Apple Silicon · .dmg · 무료
플러그인

Claude Code 플러그인으로 시작

앱 설치 없이 터미널에서 두 줄. 훅·MCP 도구·스킬이 전 프로젝트에 구성됩니다.

/plugin marketplace add bunhine0452/Ocul-PM
/plugin install oculpm@oculpm
  • MCP 도구 5종 — journal_write · plan_status · plan_update · plan_create · project_init. 규격은 서버가 보장합니다.
  • 스킬 5종 + /oculpm:standup — 기록 규격 · project-inception · self-audit · run-evals · tdd-workflow.
  • .oculpm 추적 프로젝트에서만 동작 — 비추적 저장소는 건드리지 않습니다. 커맨드·도구 전체 문서 →
왜 로컬-우선인가

코드도, 임베딩도, 작업 기록도 우리 서버로 가지 않습니다.

// 우리 서버가 없기 때문입니다.

소유권

일지는 markdown 파일. 앱이 망해도 데이터는 그대로. git clone으로 옮기면 그대로 동작합니다.

개인 정보

코드·임베딩·작업 기록 어느 것도 우리 서버로 가지 않습니다. 외부 요청은 당신이 부른 LLM 호출, 그것뿐.

속도

콜드 스타트 1.5초 미만. 검색은 디스크 I/O가 한계입니다.

오프라인

LLM 호출을 빼면 전부 오프라인에서 동작합니다.

기술 스택

Tauri 네이티브. Electron이 아닙니다.

Rust 백엔드 + 시스템 웹뷰. 전체 데이터는 프로젝트 폴더의 .oculpm/와 로컬 SQLite에 머무릅니다.

<60MB
macOS dmg 번들 크기
<1.5
콜드 스타트
30+
시크릿 redaction 패턴
0
텔레메트리 · 계정 · 클라우드
Tauri 2 · Rust 백엔드 + 시스템 웹뷰
백엔드Rust 2021 · tokio · rusqlite · sqlite-vec · FTS5
코드 분석tree-sitter (Rust·TS·JS·Py·Go) · fastembed · blake3
코드 맵React Flow · dagre · graphology (louvain)
파일 감시notify · gitignore 존중 · 500ms 디바운스
터미널portable-pty · xterm.js · addon-fit
보안keyring 네이티브 키체인 · rustls · 시크릿 자동 redaction
프론트엔드React 19 · TypeScript 5.8 · Vite 7 · Tailwind 4
누구를 위한 앱인가

자기 코드와 데이터를 자기 디스크에 두는 사람.

AI 에이전트를 일상으로 쓰는 개발자

Claude Code, Codex, Cursor, Gemini CLI, Windsurf, Copilot, aider, Cline, Zed를 매일 쓰는 사람.

개인 프로젝트 · 1~3인 팀

가볍게 시작. 스탠드업·주간 보고는 이미 만들어 주고, 팀 동기화는 로드맵에 있습니다.

터미널을 떠나기 싫은 사람

하지만 변경 이력은 시각적으로 보고 싶은 사람.

데이터 주권을 가치로 느끼는 사람

코드도 기록도 임베딩도, 내 디스크 위에.

v2.8.3 — 지금 다운로드 · macOS (Apple Silicon)

AI에게 빼앗긴 "왜 이걸 만들었더라"
답을 다시 손에 쥐세요.

설치하고, 프로젝트 폴더를 열고, 에이전트를 부르세요. 나머지는 Ocul-PM이 기록합니다.

GitHub Releases 에서 직접 다운로드 · 이후 버전은 앱 안에서 자동 업데이트 · Windows 는 추후 지원