claude-morning

skill
Guvenlik Denetimi
Uyari
Health Uyari
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 16 GitHub stars
Code Gecti
  • Code scan — Scanned 5 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested
Purpose
This tool provides a lightweight Docker container that runs a daily cron job to send a "ping" message to Claude. The primary goal is to keep a Claude subscription session active while incurring minimal API costs.

Security Assessment
Overall Risk: Medium. The tool inherently handles sensitive data because it requires you to authenticate inside the container, meaning your Claude auth state is persisted in a local Docker volume. It does execute shell commands via a daily cron job and makes external network requests to the Claude API. The light code audit found no dangerous patterns, hardcoded secrets, or requests for overly broad permissions, which is reassuring. However, you are trusting the maintainer's pre-built Docker image with your active session credentials.

Quality Assessment
The project appears to be actively maintained, with repository activity as recent as today. It has garnered 16 GitHub stars, indicating a small but present level of community trust. The primary drawback is the complete absence of a license file. Without an explicit open-source license, the code is technically under exclusive copyright, which may restrict how developers can legally use, modify, or distribute it in their own projects.

Verdict
Use with caution: the code itself is clean and functional, but the lack of a formal license and the inherent requirement to expose your active API credentials to a container should give enterprise users pause.
SUMMARY

Ping Claude every morning with minimum cost

README.md

claude-morning

A lightweight Docker container that runs Claude Code on a daily schedule to keep your Claude subscription session active.

How it works

  • Runs as a persistent container (24/7) via Docker Compose
  • A cron job fires claude -p "ping" at 8AM daily using Haiku (minimal cost)
  • Auth state is persisted in ./data/ so you only log in once
  • Logs timestamp and cost to stdout on each run

Usage

Option A: Pull from GHCR (recommended)

Create a docker-compose.yml:

services:
  claude-morning:
    image: ghcr.io/narze/claude-morning:latest
    volumes:
      - claude-data:/root/.claude
    command: daemon
    environment:
      - CLAUDE_MORNING_CRON_SCHEDULE=0 8 * * *
      - CLAUDE_MORNING_TZ=Asia/Bangkok
    restart: unless-stopped

volumes:
  claude-data:

Then:

docker compose up -d
docker compose exec -it claude-morning claude
# log in from within the TUI

Option B: Build from source

git clone https://github.com/narze/claude-morning
cd claude-morning
docker compose build
docker compose up -d
docker compose exec -it claude-morning claude
# log in from within the TUI

Configuration

Environment variable Default Description
CLAUDE_MORNING_CRON_SCHEDULE 0 8 * * * Cron schedule for ping
CLAUDE_MORNING_TZ (none/UTC) Timezone (e.g. Asia/Bangkok)

Examples

Run at 6 AM in Tokyo timezone

environment:
  - CLAUDE_MORNING_CRON_SCHEDULE=0 6 * * *
  - CLAUDE_MORNING_TZ=Asia/Tokyo

Useful commands

# Check cron is configured correctly
docker compose exec claude-morning cat /etc/crontabs/root

# Tail the ping log
docker compose exec claude-morning tail -f /var/log/claude-ping.log

# Run ping manually
docker compose exec claude-morning /scripts/ping.sh

# Run ping with full JSON output
docker compose exec claude-morning /scripts/ping.sh --debug

# Re-authenticate
docker compose exec -it claude-morning claude

Development

git clone https://github.com/narze/claude-morning
cd claude-morning
docker compose build
docker compose up -d

# Test the ping script
docker compose exec claude-morning /scripts/ping.sh --debug

Files

Dockerfile            — node:24-alpine + jq + claude-code
entrypoint.sh         — daemon mode runs crond; otherwise passes args to claude
scripts/ping.sh       — runs claude -p "ping" and logs timestamp + cost
scripts/setup-cron.sh — writes crontab from $CLAUDE_MORNING_CRON_SCHEDULE
data/                 — persisted Claude auth state (gitignored)

Yorumlar (0)

Sonuc bulunamadi