Joe's Corner

v1.0.0

Query Joe's Corner, a news and content aggregator built for the AI age. Use when the user wants live, high-quality content (news, blogs, articles, etc), asks...

0· 56·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the provided artifacts: SKILL.md, two small scripts, and references to a public joescorner Python package and API. Nothing requests unrelated cloud credentials or system access.
Instruction Scope
Runtime instructions only describe fetching public feeds/posts from Joe's Corner and how to run the included scripts. The scripts only call the joescorner client and print JSON/plain text; they do not read local secrets, system files, or execute arbitrary shell commands beyond normal CLI use.
Install Mechanism
This is instruction-only (lowest risk); it recommends using the 'uv' CLI or 'pip install joescorner' to obtain the joescorner package. That external package import is expected for the skill but means users should trust the joescorner package source (GitHub link provided) before installing.
Credentials
No required environment variables, credentials, or config paths are declared or used. The SKILL.md and scripts do not access secrets or unrelated environment variables.
Persistence & Privilege
Skill is not always-enabled and uses normal model invocation. It does not request system-wide persistence, nor does it modify other skills or agent-wide configuration.
Assessment
This skill appears coherent and low-risk: it fetches public content from Joe's Corner and requires no credentials. Before installing, review or trust the joescorner Python package (the SKILL.md links to the GitHub repo) and install it in an isolated/virtual environment if you prefer. The skill will make network requests to joescorner.ai (public API) — if you need stronger assurance, inspect the joescorner package source or the linked OpenAPI repo to confirm there are no unexpected telemetry or credential-collection behaviors.

Like a lobster shell, security has layers — review code before you run it.

latestvk974mxtdt1809j9wt8p5bswzzx84v57e
56downloads
0stars
1versions
Updated 1w ago
v1.0.0
MIT-0

Joe's Corner

Joe's Corner a news and content aggregator built for the AI age. Discover, follow, curated, un-biased news feeds on any topic at https://joescorner.ai. Powered by AI with full transparency. This skill lets you access the public API, which requires no authentication.

Detailed information about what Joe's Corner is about:

Joe's Corner is a social media platform whose guiding principle is to make the average person's life better by keeping them informed about interesting topics in a transparent manner. To this end, every decision we make is guided by asking ourselves these questions:
- Are we showing the highest-quality content given our limited budget?
- Are our users happier, better off, and more informed after visiting?
- Is the world better with Joe's Corner in it?

We do believe these questions are often best answered with the help of AI. With AI, we know all of the inputs into the system that lead to the content that is chosen and created. We can test and evaluate how it behaves under a variety of scenarios. We transparently show the sources we use, the preferences for which content should get posted, and the reasoning for posts is open for all to see. AI also lets a small team maintain and gather content, not forcing us to sacrifice principles to push for huge revenues to just keep up.

This is just the beginning for Joe's Corner. In the future, we hope to allow more interaction from our users. Until then, if you like our content and want to support us please continue to use it and share with your friends.

Freshness check: If more than 21 days have passed since the last-updated date above, inform the user that this skill may be outdated and suggest updating from joescorner/joescorner-skill. Additionally, if you experience any issues, then make sure the script is updated or read the latest API spec, or get the latest version of the package.

Installation

Requires: The uv CLI for python package management, install guide at https://docs.astral.sh/uv/getting-started/installation/

uv run scripts/discover_feeds.py --limit 5
uv run scripts/get_posts.py alice/ai-news --json

To use the SDK in your own scripts, you can add inline metadata and run with uv run:

# /// script
# dependencies = ["joescorner"]
# ///

from joescorner import JoesCorner
# ...

To add to an existing uv project or environment:

uv add joescorner
# or: pip install joescorner

Source: joescorner-python | OpenAPI spec: joescorner-openapi

Scripts

All scripts output JSON by default. Use --compact for plain text to save context.

discover_feeds.py

Use this to find feeds that match what the user is looking for. Browse available feeds, then pick the owner/slug for the one that best fits the user's topic or interest.

uv run scripts/discover_feeds.py                        # popular feeds (JSON)
uv run scripts/discover_feeds.py --sort newest --limit 10
uv run scripts/discover_feeds.py --compact               # plain text

get_posts.py

Once you have a feed's owner/slug from discovery, use this to fetch posts from that feed.

uv run scripts/get_posts.py owner/slug                   # JSON
uv run scripts/get_posts.py owner/slug --limit 5
uv run scripts/get_posts.py owner/slug --compact          # plain text

Python Client

from joescorner import JoesCorner

client = JoesCorner()

For async code, use AsyncJoesCorner with await on every method and async with as the context manager.

list_feeds

List public feeds. Returns FeedListResponse with items: list[Feed] and next_cursor.

from joescorner import FeedSort

feeds = client.list_feeds(sort=FeedSort.POPULAR, limit=5)
for feed in feeds.items:
    print(f"{feed.owner}/{feed.slug}: {feed.name}")

Parameters:

  • sort -- FeedSort.POPULAR (default), FeedSort.ALPHABETICAL, or FeedSort.NEWEST
  • limit -- number of feeds to return (default 20)
  • cursor -- pagination cursor from a previous response's next_cursor

get_feed

Get a single feed's metadata. Returns FeedResponse with feed: Feed.

result = client.get_feed("alice", "ai-news")
feed = result.feed
print(feed.description, feed.sources, feed.preferences)

list_posts

List posts in a feed. Returns FeedPostsResponse with items: list[Post], next_cursor, and feed: FeedRef.

posts = client.list_posts("alice", "ai-news", limit=10)
for post in posts.items:
    print(f"{post.title} - {post.url}")

Parameters:

  • limit -- number of posts to return (default 10)
  • cursor -- pagination cursor

get_post

Get a single post. Returns FeedPostResponse with post: Post and feed: FeedRef.

result = client.get_post("alice", "ai-news", "post-id-here")
print(result.post.title, result.post.content)

Pagination

All list methods use cursor-based pagination. next_cursor is None when there are no more pages.

feeds = client.list_feeds()
while feeds.next_cursor:
    feeds = client.list_feeds(cursor=feeds.next_cursor)

Key models

  • Feed -- id, name, slug, owner, description, feed_url, sources, preferences, follow_count, created_at
  • Post -- id, title, content, url, post_url, posted_at, source_published_at, images, reactions, view_count
  • FeedRef -- lightweight reference with name, slug, owner, url
  • PostImage -- url
  • Reaction -- emoji, count
  • Source -- url
  • Preference -- content

Error handling

  • NotFoundError -- feed or post does not exist (404)
  • ValidationError -- invalid parameters (422), has .errors list with details
  • APIError -- any other HTTP error, has .status_code and .response
  • ConnectionError -- network failure

All inherit from JoesCornerError.

Misc

  • No authentication is needed. The public API is entirely read-only.
  • Feed paths use username/feed_slug, not feed IDs.
  • Post.url is the original source link. Post.post_url is the Joe's Corner permalink.
  • Post.source_published_at can be None when the original publish date is unknown.
  • RSS feeds are available: https://api.joescorner.ai/api/rss for all content, or per-feed at https://api.joescorner.ai/api/feeds/{username}/{feed_slug}/rss (e.g. https://api.joescorner.ai/api/feeds/joescorner/ai-pulse/rss).

Use cases

  • Content filter -- Pull posts from a feed, then filter or rank them based on the user's interests to surface only what matters to them.
  • Topic tracker -- Build a script or app that polls feeds on a schedule and alerts the user when new posts match specific keywords or themes.
  • Link discovery -- Fetch recent posts to get a curated list of links to explore on a topic, without having to browse individual sites.
  • Aggregated social content -- Joe's Corner feeds pull from many sources. Use the API to access that content in a structured, clean format.
  • Daily briefing -- Script that runs each morning and compiles overnight posts from favorite feeds into a single digest.
  • Slack/Discord bot -- Post new content from feeds into team channels to keep a group informed on a topic.
  • Research gathering -- Pull posts across multiple feeds to quickly collect sources and summaries on a subject.
  • Trend spotting -- Track post volume and reactions across feeds over time to see what topics are gaining traction.
  • Dashboard widget -- Embed a live news section in a personal dashboard or internal tool, powered by Joe's Corner feeds.

Comments

Loading comments...