Google Blogger
v1.0.0Blogger API CLI for managing blog posts. Post, edit, delete, list, and monitor Blogger blogs. Use when the user wants to: (1) publish blog posts to Blogger,...
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (Blogger CLI) align with the code and SKILL.md: the scripts call the Blogger API, implement OAuth flows, list/edit/post/delete posts, and include bulk-publish/monitoring tools. The included scripts operate on local HTML and posts.json files (used for bulk publishing), which is reasonable for a tool that publishes local content to Blogger.
Instruction Scope
Runtime instructions ask the user to place Google OAuth credentials at ~/.config/gblog/credentials.json and run `gblog auth`; the scripts will read/write ~/.config/gblog/token.json and a monitor state file, and several helper scripts read/write files under ~/.openclaw/workspace/... (posts.json, html files). This file I/O is consistent with bulk-publish and generation features but means the skill will access and modify local blog content/metadata — users should expect that.
Install Mechanism
No install spec is provided (instruction-only skill with bundled Python scripts). No external arbitrary downloads or extract-from-URL installs were detected. There are optional Python dependencies (README suggests pip install youtube-transcript-api) but nothing in the manifest indicates hidden installers or remote code fetches.
Credentials
The skill does not request unrelated environment credentials. It optionally uses environment variables (GBLOG_CREDENTIALS_PATH, GBLOG_TOKEN_PATH, GBLOG_DEFAULT_BLOG_ID) for convenience; the primary authentication is via Google OAuth stored in local credential/token JSON files. No AWS/other service secrets are requested.
Persistence & Privilege
The skill does persist tokens and state under ~/.config/gblog (token.json, monitor_state.json) which is expected for an OAuth CLI. always:false and no other elevated privileges are requested; the skill does not modify other skills or system-wide agent settings.
Assessment
This skill appears to do what it says: manage Blogger via Google OAuth and local HTML/metadata. Before installing or running it, review these points: (1) OAuth: you must create/download Google OAuth client credentials and the tool will save access/refresh tokens to ~/.config/gblog/token.json — treat that file as sensitive. (2) Local files: bulk/auto-publish scripts read and may update files under ~/.openclaw/workspace/... (posts.json and HTML files) and can modify posts.json if you use the --update-json option — back up those files beforehand. (3) Inspect scripts: the repository is bundled with Python scripts; if you don't trust the source, review them (notably gblog.py implements auth and API calls). (4) Least privilege: create an OAuth client with appropriate scopes and use it only for the blog/account you intend to manage. (5) Minor documentation mismatch: SKILL.md/README mention scripts like auth.py/blogger_api.py while the provided main script is gblog.py (functionality is present but filenames differ) — this is likely benign but worth noting. If you want stronger assurance, run the scripts in a sandboxed environment or inspect the files line-by-line before running authentication or publish commands.Like a lobster shell, security has layers — review code before you run it.
latest
gblog - Blogger CLI
Manage Blogger blogs via command line. Supports posting, editing, listing, and monitoring.
Quick Start
# Authenticate with Google
gblog auth
# List your blogs
gblog list-blogs
# List posts from a blog
gblog list-posts --blog-id YOUR_BLOG_ID
# Create a new post
gblog post --blog-id YOUR_BLOG_ID --title "My Post" --content ./post.html
# Edit a post
gblog edit --blog-id YOUR_BLOG_ID --post-id POST_ID --content ./updated.html
# Delete a post
gblog delete --blog-id YOUR_BLOG_ID --post-id POST_ID
Setup
1. Google Cloud Console Setup
- Go to Google Cloud Console
- Create a project or select existing
- Enable Blogger API v3
- Go to APIs & Services → Credentials
- Create OAuth 2.0 Client ID (Desktop application type)
- Add redirect URIs:
http://localhost:8085/oauth2callbackhttp://localhost:8080/oauth2callback
- Download credentials JSON
2. Local Setup
# Create config directory
mkdir -p ~/.config/gblog
# Save credentials
cp ~/Downloads/client_secret_*.json ~/.config/gblog/credentials.json
# Run authentication
gblog auth
3. Authentication
The first time you run gblog auth, it will:
- Open a browser for Google OAuth
- Request permissions for Blogger
- Save refresh token to
~/.config/gblog/token.json
Commands
Authentication
gblog auth # Authenticate with Google
gblog auth --status # Check auth status
gblog auth --logout # Clear saved tokens
Blog Management
gblog list-blogs # List all your blogs
gblog get-blog --id BLOG_ID # Get blog details
Post Management
# List posts
gblog list-posts --blog-id BLOG_ID
# Create post
gblog post \
--blog-id BLOG_ID \
--title "Post Title" \
--content ./content.html \
--labels "AI, Tutorial" \
--draft
# Edit post
gblog edit \
--blog-id BLOG_ID \
--post-id POST_ID \
--title "Updated Title" \
--content ./updated.html
# Delete post
gblog delete --blog-id BLOG_ID --post-id POST_ID
# Get post
gblog get-post --blog-id BLOG_ID --post-id POST_ID
Monitoring
# Monitor new posts (poll every 5 minutes)
gblog monitor --blog-id BLOG_ID --interval 300
# Get post statistics
gblog stats --blog-id BLOG_ID
HTML Content Format
Posts support full HTML. Example structure:
<div style="font-family: Arial, sans-serif; line-height: 1.8;">
<h1 style="color: #27ae60;">Post Title</h1>
<p>Your content here...</p>
<div style="background: #f5f5f5; padding: 20px; border-radius: 8px;">
<h3>Call to Action</h3>
<a href="...">Subscribe</a>
</div>
</div>
Configuration Files
| File | Purpose |
|---|---|
~/.config/gblog/credentials.json | OAuth client credentials |
~/.config/gblog/token.json | Saved access/refresh tokens |
~/.config/gblog/config.json | User preferences |
Environment Variables
export GBLOG_CREDENTIALS_PATH=/path/to/credentials.json
export GBLOG_TOKEN_PATH=/path/to/token.json
export GBLOG_DEFAULT_BLOG_ID=your-blog-id
Error Handling
Common errors and solutions:
| Error | Solution |
|---|---|
invalid_grant | Run gblog auth again |
insufficient_permissions | Check Blogger API is enabled |
blog not found | Verify blog ID is correct |
rate limit exceeded | Wait 60 seconds and retry |
API Reference
Uses Blogger API v3:
- Base URL:
https://www.googleapis.com/blogger/v3 - Documentation: https://developers.google.com/blogger/docs/3.0/reference
Scripts
scripts/gblog.py- Main CLI scriptscripts/auth.py- OAuth authenticationscripts/blogger_api.py- API wrapper
Powered by Google Blogger API v3
Comments
Loading comments...
