1Password에 저장한 비밀번호와 API 키를 명령과 설정 템플릿에 사용합니다. CLI 설치와 인증부터 비밀 값 조회 및 환경 변수 전달까지 안내합니다.
- 1Password CLI 설치와 설정
- 저장된 API 키로 명령 실행
- 설정 템플릿에 비밀 값 삽입
접근할 수 없는 웹페이지를 아카이브나 API 등 다른 경로에서 찾습니다. 실제 본문인지 확인하고 저장 시점과 출처를 남겨 조사에 쓸 수 있는 사본을 제공합니다.
Use when a fetch fails: 403/429, paywall, WAF, bot wall.
오류나 접근 제한으로 가져올 수 없는 웹페이지의 본문을 다른 경로에서 찾습니다. Wayback Machine, archive.today, Jina Reader, 같은 사이트의 API나 RSS, 브라우저 순서로 확인합니다. 포함된 recover_page.py는 가져온 내용을 검증하고 실제 본문이 발견된 첫 결과를 출처 정보와 함께 반환합니다.
조사 중 403·429 오류, 봇 확인 화면, 유료 구독 안내를 만나거나 삭제된 페이지의 기록을 찾을 때 사용합니다. 이동 안내나 접근 제한 문구를 본문으로 오인하지 않도록 확인하며, 같은 URL을 반복해서 재시도하지 않고 조사를 이어갑니다.
포함된 스크립트는 python3로 실행합니다. Jina Reader에는 JINA_API_KEY가 필요합니다. 아카이브는 저장 당시의 내용이므로 현재 가격이나 재고에 대한 답변에는 쓸 수 없습니다. 인용할 때는 저장 날짜를 남깁니다. 수집되지 않은 페이지 등은 복구하지 못할 수 있습니다. 일반 웹 프록시를 사용하지 않으며 Cookie나 인증 정보도 전달하지 않는 방침입니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.
총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 19일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
When a page won't fetch — 403/429, Cloudflare "Just a moment...", a paywall, or a bot-detection interstitial — don't give up and don't loop on the same URL. Third-party services often hold a copy of the page. Work down this ladder, cheapest first.
1. Wayback Machine — archive.org "available" API (snapshot + timestamp)
2. archive.today — domain rotation: archive.ph → .md → .li → .is
3. Jina Reader — only if JINA_API_KEY is set (live server-side render)
4. API-first pivot — look for /api/, /graphql, .json, or RSS on the same host
5. Real browser — browser tool as the last, most expensive resort
Run it in one shot with the bundled script:
python3 scripts/recover_page.py "https://example.com/blocked-article" --json
The script tries each route in order, validates every body (see "Fake successes" below), and prints the first genuine hit with its provenance.
Every recovered copy carries a provenance you MUST preserve when citing:
| Route | Provenance | How to cite |
|---|---|---|
| Wayback / archive.today | snapshot | Cite WITH the snapshot date: "as archived 2026-08-06". Never present a snapshot as the live page — it may be stale. |
| Jina Reader | live | Server-side re-render of the live page; cite normally. |
| Live fetch / browser | live | Cite normally. |
If the user needs current data (prices, availability, breaking news), a snapshot is context, not an answer — say so explicitly and note its age.
# Discovery: returns closest snapshot URL + timestamp as JSON
curl -sL "https://archive.org/wayback/available?url={URL}"
# Then fetch archived_snapshots.closest.url
For enumerating many snapshots (or recovering deleted pages), the CDX index:
curl -sL "https://web.archive.org/cdx/search/cdx?url={URL}&output=json&limit=10"
CDX intermittently returns 503 under load — if it does, fall back to the
available API; don't retry-hammer it.
Works for: any publicly crawled URL. Fails for: robots-blocked sites, never-crawled URLs, JS-only SPAs (snapshots don't render).
User-submitted archives — often has paywalled news articles Wayback lacks. Rate-limits aggressively (429) and rotates domains, so iterate:
for d in archive.ph archive.md archive.li archive.is; do
curl -sL --max-time 20 "https://$d/newest/{URL}" -o ~/.hermes/cache/scratch/page.html \
-w "%{http_code}" && break
done
Validate the body, not the status code — a 429 still ships several KB of rate-limit HTML that looks like a success to a size check alone.
r.jina.ai re-renders the live page in a real browser server-side and
returns markdown. Anonymous access is dead (401 → Turnstile); a key is
required:
curl -s -H "Authorization: Bearer $JINA_API_KEY" "https://r.jina.ai/{URL}"
Handles JS SPAs that archives can't. Skip this route entirely when the env var is unset.
WAFs protect the HTML surface far more aggressively than the data endpoints behind it. After 2-3 blocked attempts on a site, stop fighting the HTML and look for:
/api/..., /graphql, or .json variants of the page URL/feed, /rss, <link rel="alternate"> in any copy
you did recover)/sitemap.xml) revealing canonical URLs that may not be gatedThese return HTTP 200 with a plausible body that is NOT the page. The script rejects them automatically; reject them manually too:
webcache.googleusercontent.com
returns 200 + tens of KB, but it's a Google Search interstitial with a JS
redirect, not a cache. Never use it.*.cdn.ampproject.org) mostly return a ~300-byte
<title>Redirecting</title> meta-refresh stub pointing back at the
original (blocked) URL. Treating that as success creates a fetch loop.Detection heuristics the script applies: body under a per-route byte floor; meta-refresh/JS-redirect stubs whose target is the original host; interstitial titles ("Just a moment", "Redirecting", "Google Search", "Attention Required").
Generic "web proxy" relays are man-in-the-middle by construction. Never send cookies or Authorization headers through one, and don't use them for anything the user will rely on — provenance is unverifiable. Prefer archives, which at least timestamp their copies.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
1Password에 저장한 비밀번호와 API 키를 명령과 설정 템플릿에 사용합니다. CLI 설치와 인증부터 비밀 값 조회 및 환경 변수 전달까지 안내합니다.
손익계산서·재무상태표·현금흐름표를 수식으로 연결한 Excel 모델을 만듭니다. 실적과 예측 가정을 입력하고 시나리오를 비교하며 세 재무제표의 일관성을 단계별로 확인합니다.
기존 PyTorch 학습 코드를 적은 수정으로 여러 GPU나 컴퓨터에 맞게 구성합니다. 혼합 정밀도, 메모리 절약 설정과 학습 실행 방법을 안내합니다.
Hermes에서 Actual Computer로 자신의 기기에 AI 모델을 실행하도록 연결을 설정합니다. 중계 서비스와 로컬 연결, 모델 선택, 응답 확인 및 오류 점검을 다룹니다.
기술에 익숙하지 않고 쉽게 불만을 느끼는 사용자로 앱을 시험합니다. 혼란스러운 조작과 이탈 원인을 찾고, 개선 과제와 개인적 불만을 나눠 수정안을 정리합니다.
두 에이전트가 각각 수정한 브랜치의 Git 충돌을 양쪽 변경 내용과 의도에 따라 중립적으로 해결합니다. 충돌별 판단 이유를 기록하고 빌드나 테스트로 통합 결과를 확인합니다.