Skip to main content
Блогқа оралу
Claude CodeAIObsidianAutomationProductivity

Claude Code CLI мен Obsidian арқылы күнделікті AI жаңалықтар дайджесті — нөл тәуелділік

6 жолдық bash-скрипт, Claude Code headless режимі және macOS launchd арқылы күнделікті жаңалық зерттеу агентін қалай құрастырғаным. Ол 11 тақырыпты іздеп, дайджесттерді Obsidian-ға тікелей жазады.

Жарияланды 2026 ж. 12 сәуір7 мин оқу

TL;DR

Таң сайын сағат 9:00-де Claude Code CLI утилитасын headless режимінде іске қосатын 6 жолдан тұратын bash-скрипт. Ол 11 бапталатын тақырып бойынша интернеттен жаңалықтарды іздейді, шуды сүзгіден өткізеді және пішімделген markdown-дайджестті iCloud арқылы синхрондалатын Obsidian vault-қа тікелей жазады. Нөл тәуелділік. Барлығы ~100 жол конфигурация.

Мәселе

Әзірлеуші ретінде бірнеше технологиядан хабардар болып отыру — күнделікті салық сияқты. RSS-арналар шулы, Twitter уақытты жеп қояды, ал жаңалық хаттар дәл ағын үстінде терең отырғаныңда келеді. Маған зерттеу жұмысын өзімнің орныма істейтін және нәтижелерді мен әлдеқашан жұмыс істейтін жерде — Obsidian vault-та көрсететін нәрсе керек болды.

Әдеттегі шешім — скрапинг құбырын құру: жоспарлаушы, краулер, NLP-құбыр, дерекқор, хабарландыру қызметі. Бұл сайт өзінің HTML-ын өзгерткенде сынуы мүмкін нәрсе үшін апталап кететін жұмыс. Маған бір түстен кейін құрастыруға болатын нәрсе керек еді.

Архитектура

Бүкіл жүйе — 4 файл және нөл тәуелділік. Міне, ол басынан аяғына дейін қалай жұмыс істейді:

macOS launchd (9:00 AM daily)
  │
  └── digest.sh
        │
        └── claude -p "$(cat prompt.md)" --max-turns 20 --allowedTools Read,WebSearch,WebFetch,Write
              │
              ├── Reads topics.yaml (11 configurable topics)
              ├── WebSearch → finds news for each topic (last 24-48h)
              ├── WebFetch → reads full articles
              ├── Filters noise: old tutorials, promos, AI spam
              └── Write → saves digest to Obsidian Vault
                    │
                    └── ~/Obsidian Vault/digests/2026-04-12.md
                          │
                          └── iCloud sync → available on all devices

Код (толығымен)

Жоба әдейі барынша ықшам етіп жасалған. Әр жол өз орнын ақтайды.

Кіру нүктесі: digest.sh

Бүкіл қосымша — 6 жолдан тұратын bash-скрипт:

digest.sh
#!/bin/bash
DIGEST_DIR="$HOME/Developer/news-digest"

claude -p "$(cat "$DIGEST_DIR/prompt.md")" \
  --max-turns 20 \
  --allowedTools Read,WebSearch,WebFetch,Write

Негізгі жалаушалар: -p Claude-ты headless режимінде іске қосады (интерактивті терминалсыз), --max-turns 20 агентке барлық тақырыпты зерттеуге жеткілікті орын береді, ал --allowedTools агентті тек файлдарды оқумен, интернеттен іздеумен және нәтижені жазумен шектейді.

Ми: prompt.md

Ақыл-ой осында тұрады. Промпт Claude-ты нені іздеу, қалай сүзу және қайда сақтау керектігі туралы нақты нұсқаулықтары бар жаңалық зерттеу агентіне айналдырады:

prompt.md
# News Digest Agent

You are a news research agent. Your job is to find today's most important
and interesting news for a senior frontend developer.

## Instructions

1. Read the topics file at ~/Developer/news-digest/topics.yaml
2. For EACH topic, search the web for news from the last 24-48 hours
3. Filter: only include genuinely new and noteworthy items
4. Write the digest as a markdown file to Obsidian Vault digests/YYYY-MM-DD.md
5. IMPORTANT: Use the Write tool to save the file. Do NOT output to stdout.

## Rules

- Language: Ukrainian for summaries, English for titles and technical terms
- If there's no real news for a topic — SKIP IT ENTIRELY
- Prioritize: releases > breaking changes > security > new patterns > discussions
- Max 5 items per topic, sorted by importance
- Include direct links to sources
- Skip promotional content, generic tutorials, and AI-generated spam

Конфигурация: topics.yaml

Тақырыптар толығымен бапталады — жаңа тақырып қосасың да, ол ертеңгі дайджестке енеді. Әр тақырыптың аты және AI іздеуін бағыттайтын қосымша контексі болады:

topics.yaml
topics:
  - name: better-auth
    context: "auth library for TypeScript. New releases, breaking changes"

  - name: Next.js
    context: "GitHub issues, releases, App Router, Turbopack, performance"

  - name: SolidJS
    context: "SolidStart, releases, ecosystem, comparison with React"

  - name: Tailwind CSS
    context: "v4 updates, new utilities, plugins"

  - name: Claude AI
    context: "Anthropic announcements, Claude Code, new models, MCP, API"

  - name: GPT AI
    context: "OpenAI announcements, new models, ChatGPT features"

  - name: React
    context: "React 19+, Server Components, new patterns, ecosystem"

  - name: Apple
    context: "Hardware, software, WWDC, developer tools, Apple Intelligence"

  - name: Notable People
    context: >
      Latest tweets from: Elon Musk, Dario Amodei, Sam Altman,
      Jensen Huang, Andrej Karpathy, Simon Willison, Swyx...

  - name: AI Global
    context: "Major AI news, new models, regulations, open-source AI"

launchd арқылы жоспарлау

macOS-те launchd — қайталанатын тапсырмаларды жоспарлаудың табиғи тәсілі (Linux-тегі cron сияқты). plist-файл скрипттің қашан және қалай іске қосылатынын анықтайды:

~/Library/LaunchAgents/com.news-digest.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.news-digest</string>

    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>/Users/you/Developer/news-digest/digest.sh</string>
    </array>

    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>9</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>

    <key>StandardOutPath</key>
    <string>/Users/you/Developer/news-digest/logs/stdout.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/you/Developer/news-digest/logs/stderr.log</string>

    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin</string>
        <key>HOME</key>
        <string>/Users/you</string>
    </dict>
</dict>
</plist>

Оны launchctl load ~/Library/LaunchAgents/com.news-digest.plist арқылы орнатасың. Скрипт күн сайын сағат 9:00-де іске қосылады, тіпті жүйеден шығып кеткен болсаң да — launchd жүйе оянған кезде өткізіп алынған тапсырмаларды орындайды.

Нәтиже қалай көрінеді

Таң сайын Obsidian vault-та құрылымдалған әрі маңыздылығы бойынша сұрыпталған жаңалықтары бар жаңа markdown-файл пайда болады:

digests/2026-04-12.md
---
date: 2026-04-12
---

# News Digest — 2026-04-12

## Next.js

### Next.js 16.1 Released with Improved Turbopack Caching
Нова версія Next.js 16.1 включає покращене кешування для Turbopack,
що зменшує час холодного старту на ~40%.
[Посилання](https://nextjs.org/blog/next-16-1)

### Critical Memory Leak Fix in App Router
Виправлено витік пам'яті в App Router при частому перемиканні
між динамічними маршрутами.
[GitHub Issue](https://github.com/vercel/next.js/issues/...)

## Claude AI

### Claude Code 1.5 — MCP Server Auto-Discovery
Anthropic випустив оновлення Claude Code з автоматичним
виявленням MCP серверів у проєкті.
[Блог](https://www.anthropic.com/news/...)

Сандармен

MetricValue
Total files in project4 (digest.sh, prompt.md, topics.yaml, .gitignore)
Lines of code~100
External dependencies0
Setup time~10 minutes
Daily execution time2-5 minutes
Cost per run~$0.10-0.30 (Claude API usage)

Негізгі дизайн шешімдері

  • API орнына Claude Code CLI — API-кілттерді, HTTP-клиенттерді басқарудың немесе жауаптарды талдаудың қажеті жоқ. CLI аутентификацияны, құралдарды орындауды және қателерден қалпына келтіруді өз бетінше атқарады
  • Email орнына Obsidian — дайджесттерді іздеуге, оларға сілтеме жасауға болады және олар мәңгі сақталады. Олар кіріс жәшігінде тұншығудың орнына менің жазбаларымның қасында тұрады
  • cron орнына launchd — launchd macOS-тің табиғи жоспарлаушысы. Ол өткізіп алынған іске қосуларды, журналдауды және орта айнымалыларын таза өңдейді
  • Тақырыптарға YAML — жаңа тақырып қосу — 2 жолдық өзгеріс. Кодты өзгертудің қажеті жоқ
  • Бос тақырыптарды аттап өту — нақты жаңалық болмаса, бөлім мүлдем қосылмайды. Толтырғышсыз, жасанды созылған мазмұнсыз

Өзіңдікін қалай құрастыруға болады

Оны 10 минутта іске қоса аласың:

  1. Claude Code CLI орнатып, аутентификациядан өт
  2. Репозиторийді клонда: git clone https://github.com/oleksiimazurenko/news-digest
  3. topics.yaml-ты өз қызығушылықтарыңмен, ал prompt.md-ты сақтау жолыңмен өңде
  4. plist-файлды өз пайдаланушы атыңмен және жолдарыңмен өңдеп, содан кейін оны launchctl load жаса
  5. Сағат 9:00-ді күт — немесе bash digest.sh арқылы қолмен тексер

Қорытынды

Бұл жобадағы ең қызық нәрсе — онда жоқ нәрселер. Дерекқор жоқ, API-сервер жоқ, Docker-контейнер жоқ, npm-пакеттер жоқ, Python virtualenv жоқ, HTML-парсер жоқ, NLP-құбыр жоқ. Тек промпт, тақырыптар тізімі және барлық ауыр жұмысты AI-агентке тапсыратын 6 жолдық скрипт.

AI-агенттермен құрастыру тәжірибеде осылай көрінеді: сен нені және қайда екенін анықтайсың, ал агент қалай екенін атқарады. Әзірлеудің жалпы уақыты шамамен 2 сағат болды, оның ішінде сүзу сапасын дұрыстау үшін промптпен жүргізілген итерациялар бар.

Дереккөздер