Bearblog
Create and manage blog posts on Bear Blog (bearblog.dev).
- Rating
- 4.7 (161 reviews)
- Downloads
- 980 downloads
- Version
- 1.0.0
Overview
Create and manage blog posts on Bear Blog (bearblog.dev).
✨Key Features
Navigate to the post editor
Fill the editor
Publish
Complete Documentation
View Source →
Bear Blog Skill
Create, edit, and manage posts on Bear Blog — a minimal, fast blogging platform.
Authentication
Bear Blog requires browser-based authentication. Log in once via the browser tool, and cookies will persist.
browser action:navigate url:https://bearblog.dev/accounts/login/
Creating a Post
Step 1: Navigate to the post editor
browser action:navigate url:https://bearblog.dev/<subdomain>/dashboard/posts/new/
Step 2: Fill the editor
Bear Blog uses a plain text header format.
The editor fields are:
div#header_content(contenteditable): attributes (one per line)textarea#body_content: Markdown body
fill/type on those two fields, then click Publish (or Save as draft). No evaluate needed.Header format:
title: Your Post Title
link: custom-slug
published_date: 2026-01-05 14:00
tags: tag1, tag2, tag3
make_discoverable: true
is_page: false
class_name: custom-css-class
meta_description: SEO description for the post
meta_image: https://example.com/image.jpg
lang: en
canonical_url: https://original-source.com/post
alias: alternative-url
Body format: Standard Markdown with extensions (see below).
The separator ___ (three underscores) is used in templates to separate header from body.
Step 3: Publish
Click the publish button or submit the form with publish: true.
Post Attributes Reference
| Attribute | Description | Example |
|---|---|---|
| title | Post title (required) | title: My Post |
| link | Custom URL slug | link: my-custom-url |
| published_date | Publication date/time | published_date: 2026-01-05 14:30 |
| tags | Comma-separated tags | tags: tech, ai, coding |
| make_discoverable | Show in discovery feed | make_discoverable: true |
| is_page | Static page vs blog post | is_page: false |
| class_name | Custom CSS class (slugified) | class_name: featured |
| meta_description | SEO meta description | meta_description: A post about... |
| meta_image | Open Graph image URL | meta_image: https://... |
| lang | Language code | lang: fr |
| canonical_url | Canonical URL for SEO | canonical_url: https://... |
| alias | Alternative URL path | alias: old-url |
Extended Markdown
Bear Blog uses Mistune with plugins:
Text Formatting
~~strikethrough~~→ ~~strikethrough~~^superscript^→ superscript~subscript~→ subscript==highlighted==→ highlighted (mark)boldanditalic— standard
Footnotes
Here's a sentence with a footnote.[^1]
[^1]: This is the footnote content.
Task Lists
- [x] Completed task
- [ ] Incomplete task
Tables
| Header 1 | Header 2 |
|----------|----------|
| Cell 1 | Cell 2 |
Code Blocks
markdown
python
def hello():
print("Hello, world!")
text
Syntax highlighting via Pygments (specify language after ``).
Math (LaTeX)
- Inline: $E = mc^2$
- Block: $$\int_0^\infty e^{-x^2} dx$$
Abbreviations
*[HTML]: Hypertext Markup Language
The HTML specification is maintained by the W3C.
Admonitions
.. note::
This is a note admonition.
.. warning::
This is a warning.
Table of Contents
.. toc::
Dynamic Variables
Use {{ variable }} in your content:
Blog Variables
- {{ blog_title }}
— Blog title - {{ blog_description }}
— Blog meta description - {{ blog_created_date }}
— Blog creation date - {{ blog_last_modified }}
— Time since last modification - {{ blog_last_posted }}
— Time since last post - {{ blog_link }}
— Full blog URL - {{ tags }}
— Rendered tag list with links
Post Variables (in post templates)
- {{ post_title }}
— Current post title - {{ post_description }}
— Post meta description - {{ post_published_date }}
— Publication date - {{ post_last_modified }}
— Time since modification - {{ post_link }}
— Full post URL - {{ next_post }}
— Link to next post - {{ previous_post }}
— Link to previous post
Post Listing
{{ posts }}
{{ posts limit:5 }}
{{ posts tag:"tech" }}
{{ posts tag:"tech,ai" limit:10 order:asc }}
{{ posts description:True image:True content:True }}
Parameters:
- tag:
— filter by tag(s), comma-separated - limit:
— max number of posts - order:
—ascordesc(default: desc) - description:True
— show meta descriptions - image:True
— show meta images - content:True
— show full content (only on pages)
Email Signup (upgraded blogs only)
{{ email-signup }}
{{ email_signup }}
Links
Standard Links
[Link text](https://example.com)
[Link with title](https://example.com "Title text")
Open in New Tab
Prefix URL with tab::
markdown
[External link](tab:https://example.com)
Heading Anchors
Headings automatically get slugified IDs:
markdown
## My Section Title
Links to: #my-section-titleTypography
Automatic replacements:
(c) → ©
(C) → ©
(r) → ®
(R) → ®
(tm) → ™
(TM) → ™
(p) → ℗
(P) → ℗
+- → ±
Raw HTML
HTML is supported directly in Markdown:
html
<div class="custom-class" style="text-align: center;">
<p>Centered content with custom styling</p>
</div>
Note:
💻Code Examples
browser action:navigate url:https://bearblog.dev/accounts/login/
## Creating a Post
### Step 1: Navigate to the post editorbrowser action:navigate url:https://bearblog.dev/<subdomain>/dashboard/posts/new/
### Step 2: Fill the editor
Bear Blog uses a **plain text header format**.
The editor fields are:
- `div#header_content` (contenteditable): attributes (one per line)
- `textarea#body_content`: Markdown body
**Verified:** use `fill`/`type` on those two fields, then click **Publish** (or **Save as draft**). No `evaluate` needed.
**Header format:**alias: alternative-url
**Body format:** Standard Markdown with extensions (see below).
The separator `___` (three underscores) is used in templates to separate header from body.
### Step 3: Publish
Click the publish button or submit the form with `publish: true`.
## Post Attributes Reference
| Attribute | Description | Example |
|-----------|-------------|---------|
| `title` | Post title (required) | `title: My Post` |
| `link` | Custom URL slug | `link: my-custom-url` |
| `published_date` | Publication date/time | `published_date: 2026-01-05 14:30` |
| `tags` | Comma-separated tags | `tags: tech, ai, coding` |
| `make_discoverable` | Show in discovery feed | `make_discoverable: true` |
| `is_page` | Static page vs blog post | `is_page: false` |
| `class_name` | Custom CSS class (slugified) | `class_name: featured` |
| `meta_description` | SEO meta description | `meta_description: A post about...` |
| `meta_image` | Open Graph image URL | `meta_image: https://...` |
| `lang` | Language code | `lang: fr` |
| `canonical_url` | Canonical URL for SEO | `canonical_url: https://...` |
| `alias` | Alternative URL path | `alias: old-url` |
## Extended Markdown
Bear Blog uses [Mistune](https://github.com/lepture/mistune) with plugins:
### Text Formatting
- `~~strikethrough~~` → ~~strikethrough~~
- `^superscript^` → superscript
- `~subscript~` → subscript
- `==highlighted==` → highlighted (mark)
- `**bold**` and `*italic*` — standard
### Footnotes### Abbreviations
*[HTML]: Hypertext Markup Language
The HTML specification is maintained by the W3C.### Admonitions
.. note::
This is a note admonition.
.. warning::
This is a warning.### Post Listing
{{ posts }}
{{ posts limit:5 }}
{{ posts tag:"tech" }}
{{ posts tag:"tech,ai" limit:10 order:asc }}
{{ posts description:True image:True content:True }}### Email Signup (upgraded blogs only)
{{ email-signup }}
{{ email_signup }}### Standard Links
[Link text](https://example.com)
[Link with title](https://example.com "Title text")</div>
**Note:** `<script>`, `<object>`, `<embed>`, `<form>` are stripped for free accounts. Iframes are whitelisted (YouTube, Vimeo, Spotify, etc.).
## Whitelisted Iframe Sources
- youtube.com, youtube-nocookie.com
- vimeo.com
- soundcloud.com
- spotify.com
- codepen.io
- google.com (docs, drive, maps)
- bandcamp.com
- apple.com (music embeds)
- archive.org
- And more...
## Dashboard URLs
Replace `<subdomain>` with your blog subdomain:
- **Blog list:** `https://bearblog.dev/dashboard/`
- **Dashboard:** `https://bearblog.dev/<subdomain>/dashboard/`
- **Posts list:** `https://bearblog.dev/<subdomain>/dashboard/posts/`
- **New post:** `https://bearblog.dev/<subdomain>/dashboard/posts/new/`
- **Edit post:** `https://bearblog.dev/<subdomain>/dashboard/posts/<uid>/`
- **Styles:** `https://bearblog.dev/<subdomain>/dashboard/styles/`
- **Navigation:** `https://bearblog.dev/<subdomain>/dashboard/nav/`
- **Analytics:** `https://bearblog.dev/<subdomain>/dashboard/analytics/`
- **Settings:** `https://bearblog.dev/<subdomain>/dashboard/settings/`
## Example: Complete Post
**Header content:**title: Your Post Title
link: custom-slug
published_date: 2026-01-05 14:00
tags: tag1, tag2, tag3
make_discoverable: true
is_page: false
class_name: custom-css-class
meta_description: SEO description for the post
meta_image: https://example.com/image.jpg
lang: en
canonical_url: https://original-source.com/post
alias: alternative-urlTags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
Adversarial Prompting
Adversarial analysis to critique, fix.