Skip to main content

365tomorrows Stories (provider)

A provider skill for ovos-common-reading-pipeline-plugin, reading flash science fiction from 365tomorrows.com aloud - the full archive (~7600 stories at time of writing), not just the latest few.

A new short story (≤600 words) every day since 2005, licensed CC BY-NC-ND 3.0 - attribution required, non-commercial, no derivatives (reading the text aloud unmodified is a straightforward reproduction, not a derivative work).

Tests PyPI version

This skill has no standalone voice interface. It registers no intents and never speaks. It only answers ovos.common_reading.* bus messages, so you also need ovos-common-reading-pipeline-plugin installed and added to your pipeline config for it to be useful at all.

Install

pip install ovos-skill-365tomorrows-stories ovos-common-reading-pipeline-plugin

Source

Indexes the full archive, not just recent stories: paginates through WordPress's REST API (wp-json/wp/v2/posts, filtered to the "Story" category - excludes the site's separate "Voices of Tomorrow" audio posts and "Fragments"), ~7600 stories at time of writing across ~76 pages of 100. Refreshed at most once every 24 hours (the archive is mostly static - only ~1 new story/day).

Each listing page already includes full post content, so the index captures each story's author (parsed from its first paragraph, always Author: <name>) without a second request per story - only reading a specific chosen story needs one more request, to that story's own wp-json/wp/v2/posts/<id> endpoint.

(An earlier version of this skill used the RSS feed instead, which only exposes the ~10 most recent stories - the REST API change was made specifically to reach the full archive.)

Translation

Only in configured languages. It translates only into the languages this installation is configured for: the device's own lang plus secondary_langs in mycroft.conf. A search or ping in any other language gets no answer, so a request in a language nobody here speaks never loads a translation model or translates the title catalogue. A HiveMind hub serving users in several languages lists them in secondary_langs.

Unlike the Gutenberg-sourced fairy-tale providers in this family (ovos-skill-andersen-tales, ovos-skill-grimm-tales, ovos-skill-bechstein-tales, ovos-skill-cosquin-tales, ovos-skill-andrew-lang-tales), this provider does machine-translate for non-English devices - same approach as ovos-skill-ovosblog/ ovos-skill-arxiv-papers. These are short (≤600 word), self-contained stories, a much smaller translation-quality risk than a full fairy tale's literary prose (see the reasoning in ovos-common-reading-pipeline-plugin#5).

Matches search phrases against translated titles and discloses via "machine_translated": true/false in the search response. If no translation plugin is available, this provider does not respond to searches at all for a non-English device, rather than silently offering English content the user didn't ask for.

Collection hints

Responds to collection_hint values in the device's own language - e.g. "365 tomorrows"/"tomorrows" on English, "science fiction noveller" on Danish, "racconti di fantascienza" on Italian - matched fuzzily against that language's own alias list (see locale/<lang>/collection.voc). Like ovos-skill-ovosblog/ ovos-skill-arxiv-papers, this provider works on any device language, so aliases fall back to English for any language we haven't bothered translating - see ovos-common-reading-pipeline-plugin#26. The collection name itself ("365tomorrows") stays untranslated - it's a proper noun.

Content type

Identifies as content_type: "story" or "tale". A search with a content_type hint for anything else gets no response from this provider.

"Surprise me"

A search with no specific phrase but a matching collection_hint returns the most recent story, by publish date.

Credits

Content from 365tomorrows.com, licensed CC BY-NC-ND 3.0. Author credited per-story via the author field in every search response.

Category

Entertainment

Tags

#stories #scifi #flashfiction #creativecommons #provider

Metadata

Release files for ovos-skill-365tomorrows-stories 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-skill-365tomorrows-stories 0.1.6
File Size Uploaded
ovos_skill_365tomorrows_stories-0.1.6.tar.gz 32.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-skill-365tomorrows-stories 0.1.6
File Interpreter ABI Platform
ovos_skill_365tomorrows_stories-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 63.7 kB

Release files / ovos_skill_365tomorrows_stories-0.1.6.tar.gz

Download URL ovos_skill_365tomorrows_stories-0.1.6.tar.gz
Size 32.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f59eb1a93667a8d933850dc891cd584c7ac0823e3ddf79988b97bcb088767a30
BLAKE2b-256 checksum
How to use checksums
860ea1b3ba860d04f9fbea90c96c90d804a4d682e076e0aed9921d31b4c01da8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / ovos_skill_365tomorrows_stories-0.1.6-py3-none-any.whl

Download URL ovos_skill_365tomorrows_stories-0.1.6-py3-none-any.whl
Size 30.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5cd4f798f10ba61af1a61b66efe0a6b689bf8f13a53bb50052c36880663fbcf5
BLAKE2b-256 checksum
How to use checksums
25a905419ca82e702740752a421054a6b2849da9e6137bdca447df56869d15f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.8

2 release files

0.1.7

2 release files

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page