Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

single-web-use

웹을 한 번에 하나의 작업면씩, 깊게, 눈앞에서 사용하는 로컬 CLI.

터미널의 CLI 에이전트가 Obsidian Web Viewer를 조작해 웹 서비스를 직접 사용하도록 만든 공개 연구 프로토타입이다. 여러 탭을 넓게 훑는 병렬 스웜보다 한 작업면을 끝까지 다루고, 백그라운드보다 사용자가 지켜보고 개입할 수 있는 화면 위 실행을 우선한다.

Important

현재 공개본은 v0.1.0 연구 프로토타입이다. macOS, Obsidian Web Viewer, Obsidian CLI에 의존하는 CLI 방식이며, 범용 프로덕션 자동화 도구가 아니다. 플러그인 기반 host와 제한된 공개 인터페이스는 연구 중이며 이 release에 포함되지 않는다.

이름과 방향

single은 한 사이트만 영구 지원하거나 한 번 쓰고 버린다는 뜻이 아니다. 한 시점에 하나의 active web surface를 깊게 다룬다는 운용 원칙이다.

  • 좁고 깊게. 사이트별 사용법을 사용자의 로컬 노트와 어댑터에 축적한다.
  • 보이게. 조작 탭을 화면 앞으로 가져오되 키보드 포커스는 빼앗지 않는다.
  • 개인적으로 누적. 이 저장소는 코어와 합성 예제만 제공한다. 실제 사이트 지식, 업무 절차, 선호와 계정 조건은 각 사용자가 로컬에서 제로부터 만든다.

현재 공개 범위

이 저장소가 제공하는 것:

  • webctl CLI와 사이트 무관 webview 조작 코어
  • 사이트 어댑터를 만드는 adapters/example.sh
  • 사이트 지식 노트 템플릿 profiles/_template.md
  • 실행 구조와 배포 경계 문서

이 저장소가 제공하지 않는 것:

  • 실제 서비스용 어댑터와 프로파일
  • 계정 정보, 인증정보, 쿠키 또는 API key
  • 사용자별 Site/Work/Preference Pack
  • 개인 업무 기록, 선호, selector 관찰과 산출물

Perplexity를 첫 연구 대상으로 코어의 풀사이클을 검증했지만, 해당 실제 어댑터와 프로파일은 이 공개 저장소에 포함하지 않는다. 공개본 사용자는 예제와 템플릿에서 자기 사이트 자산을 만들어야 한다.

요구사항

  • macOS
  • 실행 중인 Obsidian 앱과 활성화된 Web Viewer 코어 플러그인
  • 활성화된 Obsidian CLI (obsidian 명령이 PATH에 있어야 함)
  • python3
  • 사용할 Obsidian vault

설치

git clone https://github.com/CocaPls/single-web-use.git
cd single-web-use

# 선택: PATH에 노출
ln -s "$PWD/bin/webctl" /usr/local/bin/webctl

# 사용할 vault 지정
export OBS_VAULT="내볼트이름"
# 또는
mkdir -p ~/.config/webctl && echo "내볼트이름" > ~/.config/webctl/vault

webctl doctor

doctor는 Obsidian CLI, 앱 응답, vault, python3를 점검한다. 하나라도 실패하면 해당 줄에 해결 힌트를 표시한다.

사용법

webctl doctor               # 환경 진단
webctl adapters             # 설치된 어댑터 목록
webctl <사이트> ask "질문"  # 어댑터가 구현한 풀사이클 실행
webctl runs                 # 살아 있는 run 목록
webctl closeall             # webctl이 연 탭 정리

사이트 어댑터의 ask 구현은 다음 흐름을 조립한다.

flowchart LR
  A["1. 탭 열기"] --> B["2. 완료 감지 장착"] --> C["3. 입력"] --> D["4. 제출"] --> E["5. 완료 대기"] --> F["6. 본문과 출처 회수"]
Loading

새 사이트 자산은 예제에서 시작한다.

cp adapters/example.sh adapters/<사이트>.sh
cp profiles/_template.md profiles/<사이트>.md
webctl <사이트> <명령>

실제 adapter와 profile에는 계정 조건, selector, 업무 절차 같은 사용자 자산이 들어갈 수 있다. 공개 저장소에 commit하지 말고 각자 로컬에서 관리해야 한다.

코어가 제공하는 것

  • 실행 단계 조립: 열기, 완료 감지, 입력, 제출, 대기, 회수 primitives
  • streaming response 회수 메커니즘: 페이지 수준에서 보이지 않는 응답을 세션 CDP로 관찰
  • runId 격리: 여러 실행 상태가 서로 섞이지 않도록 분리
  • Obsidian CLI 직렬화: 동시 호출 시 응답 혼입을 막는 프로세스 lock
  • 화면 따라오기: 조작 탭을 보이게 하되 조회 명령은 화면을 건드리지 않음
  • 제한된 capture: /tmp 아래 PNG 경로로 webview 화면 저장

아키텍처

조작 메커니즘과 사이트 지식을 분리한다.

flowchart TB
  AGENT["CLI agent"] --> BIN["webctl"]
  BIN --> CORE["lib/core.sh\n사이트 무관 메커니즘"]
  BIN --> ADAPTER["adapters/*.sh\n사이트별 정책"]
  ADAPTER --> CORE
  PROFILE["profiles/*.md\n사용자 로컬 지식"] -.-> AGENT
  CORE --> VIEWER["Obsidian Web Viewer"]
  VIEWER --> SITE["Web service"]
Loading
  • bin/webctl: 단일 진입점, 환경 진단, 어댑터 발견과 명령 위임
  • lib/core.sh: 열기, 감지, eval, capture, 정리, 실행 격리
  • adapters/*.sh: 사이트별 selector, 완료 조건과 오케스트레이션
  • profiles/*.md: 코드가 자동으로 읽지 않는 사용자 지식 노트

배포 경계와 archive 생성법은 DISTRIBUTION.md를 참고한다.

보안과 사용 경계

v0.1.0은 신뢰할 수 있는 단일 사용자의 로컬 실험 환경을 전제로 한다.

  • Obsidian CLI의 app-context eval과 Electron webContents/debugger를 사용한다.
  • 로그인된 webview 세션에서 page JavaScript, network observation과 screenshot capture를 수행할 수 있다.
  • 신뢰하는 adapter만 실행하고, source를 검토하지 않은 script를 추가하지 않는다.
  • 주 vault에서 시험하기 전에 별도 test vault 또는 확인된 backup을 사용한다.
  • remote service, multi-user host 또는 외부에 노출된 automation endpoint로 사용하지 않는다.
  • 결제, 삭제, 송신, 게시, 계정 변경 같은 민감 작업에 사용하지 않는다.
  • credential, cookie, token과 개인정보를 adapter, profile, log 또는 공개 issue에 기록하지 않는다.
  • doctor --json 출력에는 설정한 vault 이름이 포함되므로 공개 log에 올리지 않는다.

이 공개본은 production threat model을 통과한 범용 브라우저 자동화 제품이 아니다. 문제를 발견하면 공개 issue에 비밀정보를 넣지 말고 재현 가능한 최소 예제로 보고한다.

현재 한계

  • 실제 사이트 검증 범위는 첫 연구 대상 하나이며, 그 adapter는 공개되지 않는다.
  • macOS, Obsidian 앱, Obsidian CLI와 python3에 강하게 의존한다.
  • CLI 명령과 내부 구조는 SemVer 0.x 동안 변경될 수 있다.
  • 플러그인 기반 host, 제한된 public capability API와 개인 자산의 정식 Pack 구조는 후속 연구 대상이다.

라이선스

현재 공개된 v0.1 코드는 MIT License로 배포한다.

함께 보기

single-web-use는 everything-in-obsidian의 웹 자동화 연구 중 독립 실행 가능한 공개 프로토타입이다. 허브는 이 프로젝트가 더 큰 Obsidian 기반 도구 생태계에서 어디에 놓이는지 설명하는 선택적 맥락이다.

About

Local-first web automation through Obsidian Web Viewer — one active surface at a time, deeply and visibly.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages