AutoCua
macOS·Windows·Linux·브라우저·iOS·Android용 컴퓨터 사용 에이전트(CUA)로 자동화
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기램프 아래, 한 글자씩 — 타자기 감성의 macOS 메모 앱. 원고지 · 실링왁스 · 윈도우 95 메모장 · 타이포 포스터 등 27가지 템플릿으로 내보내기
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
타자기 감성의 macOS 메모 앱 (Electron). 어두운 방의 작은 램프 아래에서 한 글자씩 쓰고, 다 쓰면 줄 노트 · 원고지 · 실링왁스 · 윈도우 95 메모장 같은 다양한 템플릿으로 내보내 공유하거나 저장합니다.README 전문 보기 ↗
타자기 감성의 macOS 메모 앱 (Electron). 어두운 방의 작은 램프 아래에서 한 글자씩 쓰고, 다 쓰면 줄 노트 · 원고지 · 실링왁스 · 윈도우 95 메모장 같은 다양한 템플릿으로 내보내 공유하거나 저장합니다.
npm install
npm start # 개발 실행
npm run dist # arm64 · Intel DMG (ad-hoc 서명)
- 품목 ··· 값으로 쓴 항목은 점선으로 이어짐TYPE POEM.TXTsrc/app.js의 TEMPLATES(이름, AI 요청), src/shared.js의 templateHtml(창 · 머리글 같은 틀),
src/doc.css의 .doc[data-template=…](모양)로 정의합니다. 픽셀 글꼴은 갈무리(OFL)입니다.src/print.html에 미리보기와 같은 문서 스타일(src/doc.css)로 렌더링해 printToPDF로 만듭니다.ChatGPT로 로그인 (Plus · Pro 구독) — chatgpt.js
auth.openai.com에 로그인하면 http://127.0.0.1:1456/auth/callback으로 돌아오고(PKCE, state, nonce),
처음에는 dynamic_agent_client로 등록해 발급된 client_id를 다음 로그인에 다시 씁니다.store: false, stream: true)로 요청하며 ChatGPT 구독 한도에서 차감됩니다.
모델은 계정의 모델 목록에서 고릅니다. 한도 초과나 구독 미지원은 따로 안내합니다.safeStorage로 암호화해 chatgpt.bin(권한 0600)에 저장하고 만료 전에 자동 갱신합니다.Claude API 키 — ai.js
claude-opus-5-5를 @anthropic-ai/sdk 스트리밍으로 호출합니다. 안전 분류기가 거절하면 서버 측 대체 모델로 다시 실행합니다(fallbacks: "default").safeStorage(macOS 키체인)로 암호화해 anthropic-key.bin에 저장합니다. 저장된 키가 없으면 ANTHROPIC_API_KEY를 씁니다.1. - - [ ] 뒤에서 Enter로 이어 쓰고, 빈 항목에서 Enter를 한 번 더 누르면 끝납니다.
Tab / ⇧Tab으로 들여쓰기·내어쓰기, 항목을 지우거나 옮기면 번호를 다시 매깁니다. [ ]를 클릭하면 체크됩니다.# 제목, **굵게**, > 인용 (기호는 흐리게, 글자 폭은 그대로)[14:30]처럼 지금 시각을 적고, 에디터와 PDF에서 타임스탬프로 표시됩니다.타자기(Courier Prime · 나눔고딕코딩, 기본) · LINE Seed · 마루 부리.
src/fonts/에 들어 있고 src/fonts.css에서 등록합니다. 글꼴별 저작권과 라이선스 원문은 src/fonts/README.md에 있습니다. 고정폭이 아닌 글꼴에서는 제목·굵게를
글자 굵기 대신 잉크를 두껍게 그려 표시합니다(미러와 textarea의 글자 폭이 어긋나지 않도록).
LINE Seed · 마루 부리는 Bold 한 가지 굵기만 들어 있어 본문도 Bold로 보입니다.
Lamplight 백업 <날짜>/를 만들고, lamplight-backup.json(전체 데이터)과
폴더별로 정리한 .md 사본을 저장합니다.lamplight-backup.json을 고르면 아직 없는 노트와 폴더만 추가합니다(이미 있는 노트는 덮어쓰지 않음).밤 / 낮(시스템 설정 따르기) · 글꼴 · 글자 크기 · 레일 위치 · 스크롤할 때 방 밝히기 · 마우스를 따라 빛 움직이기 · 타자기 소리(켜기, 크기, 종류) · 움직임 줄이기. 처음 안내는 앱 메뉴 › 처음 안내 다시 보기로 다시 열 수 있습니다.
내려받기: https://github.com/designzeroplus-pro/lamplight/releases
서명 없는 개인 배포입니다. 처음 열 때 시스템 설정 › 개인정보 보호 및 보안에서 "그래도 열기"를 한 번 누르면 됩니다.
자동 업데이트 (updater.js): 앱은 실행할 때(그리고 6시간마다) GitHub의 최신 릴리스를 확인하고, 새 버전이 있으면
창 아래에 알려 줍니다. 업데이트를 누르면
macOS 기본 업데이터(Squirrel)는 서명된 앱만 교체할 수 있어서 직접 구현했어요. DMG에서 바로 실행했거나, 쓰기 권한이 없는 폴더에 있거나, 릴리스에 digest가 없으면 예전처럼 DMG를 내려받아 직접 설치하게 안내합니다. 앱 메뉴 › 업데이트 확인…으로 직접 확인할 수도 있습니다.
새 버전 내보내기 (빌드 폴더는 .noindex로 끝나서 Spotlight·Launchpad에 사본이 나타나지 않습니다):
npm version patch --no-git-tag-version # package.json 버전 올리기 (예: 0.1.0 → 0.1.1)
npm run dist # dist.noindex/에 arm64 · Intel DMG (ad-hoc 서명)
git commit -am "Release v0.1.1" && git push
gh release create v0.1.1 dist.noindex/Lamplight-0.1.1-arm64.dmg dist.noindex/Lamplight-0.1.1.dmg --title "Lamplight 0.1.1" --notes "변경 사항"
나중에 Apple Developer ID로 서명·공증하려면 인증서를 키체인에 설치하고 APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD,
APPLE_TEAM_ID를 설정한 뒤 npm run release를 씁니다.
| 키 | 동작 |
|---|---|
| ⌘N | 새 노트 (지금 보는 폴더에) |
| ⌘⇧N | 새 폴더 |
| Tab / ⇧Tab | 목록 들여쓰기 / 내어쓰기 |
| ⌘, | 설정 |
| ⌘K | 모든 노트 검색 |
| ⌘F / ⌘G / ⌘⇧G | 이 노트에서 찾기 / 다음 / 이전 |
| ⌘T | 지금 시각 적기 |
| ⌘L | 램프 켜기 / 끄기 |
| ⌘⇧L | 밤 / 낮 전환 (설정에서 시스템 설정 따르기도 가능) |
| ⌘⌥⌫ | 노트를 휴지통으로 |
| ⌘⇧S | 타자기 소리 |
| ⌘\ | 사이드바 |
| ⌘E | 내보내기 (레트로 템플릿 · PDF · 이미지 · Markdown) |
main.js 메인 프로세스: 창, 메뉴, 파일 저장, 검색, PDF 내보내기, 업데이트 확인
ai.js AI 생성: Claude(API 키) 호출, ChatGPT로 위임
chatgpt.js ChatGPT로 로그인(OAuth PKCE, 토큰 갱신) + Responses API 스트리밍
updater.js 자동 업데이트: DMG 내려받기 · SHA-256 확인 · 종료 후 교체
preload.js contextBridge로 노출하는 window.memo API
src/
index.html
styles.css
shared.js 메인·화면·테스트가 같이 쓰는 순수 함수 (미리보기, 정렬, Markdown 렌더러, 템플릿 렌더링, 번호 다시 매기기, 버전 비교)
app.js 화면 조립, 노트 저장/전환, 폴더, 검색, 내보내기, 프레임 루프
doc.css 내보내기 문서 스타일 (미리보기 · PDF 공용)
print.html PDF 렌더링 템플릿
ink-editor.js 투명 textarea + 글자별 span 미러 (잉크 번짐·타격 애니메이션)
lamp.js 어둠 캔버스에서 빛 원뿔을 잘라내는 램프 렌더러
sound.js Web Audio로 합성한 타자기 소리 (타건, 스페이스, 캐리지 리턴, 벨)
test/ `npm test` (node:test) — shared.js 단위 테스트
데이터는 ~/Library/Application Support/Lamplight/notes/<id>/에 저장됩니다.
폴더 목록은 folders.json, 사이드바 목록 캐시는 index.json(노트 파일 수정 시각으로 갱신), 창 크기·위치는 window.json에 있습니다.
폴더를 지우면 안의 노트는 미분류로 옮겨집니다.