Use Codex with Tareno to compute a weekly air-quality summary from a CSV with a script, check it against threshold values and save a Mastodon post you approve in Tareno.
Can Codex compute numbers from a CSV with a script and draft a weekly Mastodon post?
Yes. Codex writes a small script that computes the week's averages and the days above a threshold from your CSV, shows the output, writes a post that uses only those numbers and saves a draft through Tareno. It does not give health advice. Scheduling stays pending until you approve it in Tareno.
Citizen-science groups and local environmental associations collect readings and then struggle to say anything about them. A weekly summary on Mastodon, where environmental groups are active, would help, but only if the numbers are right and the claims stay within the data. Codex is well suited to the arithmetic part: it writes a script, runs it on the file and reports exactly what came out, including the days with missing readings. The words around the numbers are written afterwards, from the output, never before. This page follows an air-quality monitoring group through a weekly post, with the computation as the center and the clear refusal to give advice.
Example: a neighborhood air-quality group posts its weekly summary
Imagine a group whose sensor logs one reading per hour in a CSV. Each Monday the volunteer asks Codex to compute, for the past seven days, the mean and maximum of fine particles, the number of hours above the agency's daily guideline value and the number of missing hours. Codex writes the script, runs it, and reports a mean of 11, a maximum of 38 and 14 hours above the guideline, with 9 hours missing on Thursday. It writes a post of 420 characters from those numbers, names the sensor location in general terms, and saves the draft with create_drafts.
Step by step
01
Give Codex the file and the thresholds
Point it at the CSV and state the guideline values and where they come from. A number without its reference is not a finding.
02
Compute with a script
Ask for a small script that computes the mean, maximum and hours above the threshold for the last seven days, and counts missing hours. Codex shows the code and the output.
03
Report gaps honestly
Missing readings change what the week means. The summary says how many hours were missing, and the post says so.
04
Write from the output
Request a post that uses only the printed numbers, names the period and the data source and gives no health advice. Mastodon limits are set per server, so confirm yours.
05
Save the draft
Codex confirms the account with list_accounts and saves the post through create_drafts. Tareno's configuration for Mastodon assumes 500 characters.
06
Request a time and approve
Give a day, a time and an IANA time zone. The request becomes a pending action, and you approve it in the Tareno dashboard.
Prompts to copy
Compute the week
Write and run a script on readings.csv that computes, for the last seven days, the mean and maximum of PM2.5, the number of hours above the guideline value [15 micrograms per cubic metre] and the number of missing hours. Show me the script and the exact output, and do not interpret anything yet.
Check the reference values
State which guideline value you used, what the file says about units and which hours you counted as missing. If any of these is an assumption rather than something in the file or my message, mark it so I can confirm it before the numbers go into a post.
Write the post
Write a Mastodon post for Tareno within 450 characters from the printed output only: the period, the mean, the maximum, the hours above the guideline and the missing hours, with the sensor's general area. Do not give health advice or say the air was safe or unsafe.
Save the draft
Use Tareno to confirm my Mastodon account [handle@server] and save the approved post as a draft. Return the draft ID and the text, and do not request a time until I give you the day and the time zone.
Mastodon limits and tools in Tareno
Text
up to 500 characters; hashtags and mentions are supported; plain text, no rich formatting
Images
jpg, png, gif, webp, up to 40 MB each, up to 4 per post
Video
mp4, mov, webm, 0 to 10 min, up to 50 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
As configured in Tareno on 2026-10-24. The live rules for your own account come from the get_platform_schema tool.
What Mastodon itself documents
Character and media limits are set by each server, not by Mastodon itself. The documentation's example server allows 500 characters and 4 attachments, and counts every link as 23 characters.
A scheduled status must lie at least 5 minutes in the future, and a poll cannot be combined with media attachments.
Visibility can be public, unlisted, private (followers only) or direct, and a content warning can be set with spoiler text.
Tareno's configuration for Mastodon allows 500 characters, but Mastodon's documentation says limits are set per server, so the post length should be checked against yours.
Mastodon's documentation says a scheduled post must be at least 5 minutes ahead, so a Monday-morning summary can be queued on Sunday evening.
Tareno's configuration allows up to four images on a Mastodon post, so a chart from the script can accompany the numbers if you add a description of what it shows.
Tareno does not read posts or replies on Mastodon, so questions about the data arrive in the app and are answered there.
What does not work
Codex cannot verify that the sensor was calibrated, so the group states the data as collected and says so.
It cannot give health advice, and the post must not offer any either, however mild it sounds.
It cannot publish a post on its own, since a time request becomes a post only after you approve it in the Tareno dashboard.
Mistakes to avoid
Interpreting the numbers as safe or unsafe. State what was measured and leave health decisions to the authorities.
Ignoring missing hours. They change the meaning of the mean.
Using a threshold without naming its source. A reference makes the number checkable.
Letting the post come before the output. Write from what the script printed.
Open the published Tareno listing, choose install or connect, and complete the Tareno login. Enable Tareno in a new conversation. For Claude, search for Tareno in the supported plugin directory.
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.
Because a script gives the same answer every time and shows its work. Codex writes it, runs it on your file and prints the result, so every number in the post can be traced to a line of output.
Should the post say whether the air was good?
No. State what was measured and compare it with a named guideline value, but leave the judgment about safety to the authorities. Codex is told not to give advice and to flag any sentence that sounds like it.
What about missing readings?
Count them and say so in the post. A mean computed from a week with a gap is a different statement from one computed on full data, and followers should know which they are reading.
Can the post include a chart?
Yes. Codex can draw a chart with the script, you upload it to the library, and Tareno's configuration allows up to four images. Add a description that states the trend for readers who cannot see it.
How long can the post be?
Tareno's configuration assumes 500 characters, while Mastodon's documentation says each server sets its own limit. Tell Codex your server's figure so that it counts links and text correctly.
Will the weekly post go out without my approval?
No. A scheduling request becomes a pending action in Tareno, and Mastodon receives the post only after you approve it in the dashboard. `get_action_status` shows what happened afterwards.