Message OpenClaw today's best sighting and photos; it drafts the Bluesky post with up to four images and alt text through Tareno, and a morning job proposes drafts from your log.
Can OpenClaw draft a daily Bluesky post with photos and alt text from a chat message?
Yes. Message OpenClaw the sighting and the photo names in a channel configured in your Gateway. It writes a post within 300 characters, attaches up to four photos from your Tareno library with alt text and saves a draft. A morning job can propose drafts from your log. Nothing is scheduled until you approve the request in Tareno.
Bird clubs and nature societies have found a home on Bluesky, where a photo of a kingfisher with a good description travels well. The routine is simple and always late: someone sees something at dawn, takes photos, and the post is written at night or not at all. OpenClaw answers in the chat apps members already use and can read a log file, so the post can start from a message in the field. This page follows a birdwatching club through that routine, including the alt text that makes photos accessible and the one rule that matters most in this hobby: do not publish where a rare bird nests.
Example: a birdwatching club posts its daily best sighting
Imagine a club member who photographs a kingfisher at the reservoir at 07:10 and messages OpenClaw two photo names and a line: kingfisher, reservoir east bank, 07:10. OpenClaw finds the files with list_media, writes a post of 240 characters with the species and the general place, and drafts alt text for each photo that describes the bird's pose and surroundings. It saves the draft with create_drafts for the club's Bluesky account. A morning cron job reads the sighting log and proposes tomorrow's draft the evening before. The club's volunteer approves the 08:00 request in the Tareno dashboard.
Step by step
01
Message the sighting with the photo names
Send the species, the general place, the time and the file names in a channel configured in your OpenClaw Gateway. OpenClaw uses what you type, so spell the species the way the club writes it.
02
Let it find the photos
The files are looked up with list_media, and a name that matches nothing is reported back. Tareno accepts at most four images on a Bluesky post.
03
Write alt text per photo
Ask for a description of what each photo shows: the bird, its pose, the setting. Good alt text is the difference between a photo that reaches everyone and one that does not.
04
Protect sensitive places
For rare or nesting species, ask OpenClaw to name only the region, not the site. A precise location for a nest can bring crowds that harm the birds.
05
Save and approve
The connected account is checked with list_accounts, then create_drafts stores the text. Name a time and time zone; what follows is a pending request that only your approval in the dashboard turns into a post.
06
Add the evening proposal job
A cron job can read the sighting log and message you tomorrow's draft. Limit its toolset to reading and drafting.
Prompts to copy
Draft from the field message
Use Tareno to find the photos [kingfisher-1.jpg, kingfisher-2.jpg] in my media library. Write a Bluesky post within 300 characters about a kingfisher seen at the reservoir at 07:10, naming only the region, and write one sentence of alt text per photo. Show me the text first; I confirm before it is stored.
Check for sensitive details
Read the draft again and tell me whether it reveals a precise location, a nest or a date pattern that could help someone find a rare bird. If it does, rewrite it with only the general region and show me the change before anything is saved to Tareno.
Evening proposal job
Each evening at 20:00 look up tomorrow's row in the sighting log [file path], and message me a proposed post of at most 300 characters. Store it as a Tareno draft only, with no scheduling or publishing, and warn me when the row is missing or marked sensitive.
Request the morning slot
Request a Tareno slot for draft [draft ID] at [tomorrow 08:00] in the time zone [Europe/Berlin], so the sighting is online before the morning walkers set out. Send me the pending action ID and confirm that nothing is live before my approval in the dashboard.
Bluesky limits and tools in Tareno
Text
up to 300 characters; hashtags and mentions are supported; plain text, no rich formatting
Images
jpg, jpeg, png, webp, gif, up to 2 MB each, up to 4 per post
Video
mp4, 0 to 3 min, up to 100 MB, one video per post
Links
links can sit inside the text and get a preview card
What Tareno can read
posts published outside Tareno: no; comments: no; transcripts: no; video download: no
Network-specific
a drafted thread can have up to 24 replies of 300 characters each
As configured in Tareno on 2026-10-24. The live rules for your own account come from the get_platform_schema tool.
What Bluesky itself documents
Post text is limited to 300 graphemes and 3,000 bytes, so an emoji counts as one grapheme but can use several bytes.
A post can embed up to 4 images, each up to 2,000,000 bytes.
Video embeds accept MP4 up to 300,000,000 bytes, with up to 20 caption files in WebVTT. Tareno's configuration is stricter: one MP4 of up to 180 seconds and 100 MB.
Tareno's configuration for Bluesky allows up to four images per post, jpg, png, webp or gif, with a size limit of 2 MB each, so phone photos usually need exporting at a smaller size.
Posts on Bluesky are limited to 300 characters, so a sighting post names the species, the region and one detail.
Tareno does not read posts or replies on Bluesky, so OpenClaw cannot tell you who asked about the bird; you read replies in the app.
A scheduled job needs the Gateway awake; if the machine sleeps at 20:00, tomorrow starts without a proposal.
What does not work
OpenClaw cannot identify a bird from a photo reliably, so the species comes from the member who saw it.
It cannot see who replied on Bluesky, because Tareno exposes neither posts nor replies for that network.
It cannot put a sighting online by itself; the dashboard approval is the only door.
Mistakes to avoid
Publishing the exact site of a rare bird. Name the region only.
Uploading full-size phone photos. Export them under the 2 MB limit.
Skipping alt text. Photo-heavy posts are only accessible with it.
Widening the evening job's toolset. Anything beyond reading and drafting removes your last check.
Open the client's MCP server settings. Add Tareno with the HTTPS endpoint below using Streamable HTTP. This requires support for authenticated remote MCP, not just local stdio servers.
Choose OAuth, connect and sign in with your own Tareno account. Check the requested permissions. Refresh the client's tool list after authorization.
Run list_accounts first. Confirm the returned workspace and account IDs before creating a draft. If no accounts appear, connect a social account in Tareno first.
https://tareno.co/api/mcp
Use the same Tareno account across supported clients. Open the relevant setup guide for authentication, first use, reconnect, and revocation.
Is a chat message enough to start a sighting post?
Yes, as the starting point. With a channel configured in your Gateway and the photos in your Tareno library, OpenClaw drafts the text and the alt text and saves a draft for your Bluesky account.
How many photos fit in a Bluesky post?
Four at most under Tareno's configuration, with 2 MB per file. If you have more, OpenClaw proposes which four to keep and you decide. A second post can carry the rest.
Why is alt text so important here?
Because a bird photo carries its meaning visually, and people who cannot see it get nothing without a description. OpenClaw drafts alt text per photo, and you correct any detail it misread.
How do I keep a rare bird's site private?
Tell OpenClaw to name only the region for sensitive species, and mark such entries in your log. Read the draft before approving, since a precise place can be inferred from small details.
What if the Gateway is asleep at 20:00?
Then that evening's proposal never appears. Jobs fire only while the Gateway runs, so keep the machine awake or send the sighting yourself the next morning.
Can something be published while I am out birdwatching?
Only a request you already approved. Anything else waits in Tareno as pending, and `get_action_status` shows which requests went through and which still wait for you.