← Files FeedsterARCHIVED FILE
.codex-plugin/plugin.json
6.98 KB · Nov 3, 2026 · 19:10 UTC
{
"name": "feedster",
"version": "0.1.5",
"description": "Read and search articles, discover feeds, and manage your Feedster library, highlights, and notes.",
"author": {
"name": "Patrick Marsceill",
"url": "https://feedster.co"
},
"skills": "./skills/",
"interface": {
"displayName": "Feedster",
"shortDescription": "The best of the web, for you",
"longDescription": "Keep up with content from your favorite websites, news sources, and blogs. Connect your Feedster account to summarize your front page, search articles, discover RSS feeds, and organize feeds and channels. Read articles with links to their original sources, read and save highlights, edit their private notes, or ask Feedster to add sources and manage your library. Account changes are made only when you request them. Search covers Feedster\u2019s indexed content, not the entire web. Private subscription content remains restricted to its owner. Available features depend on the connected server version.",
"developerName": "Patrick Marsceill",
"category": "Productivity",
"capabilities": [
"Read articles",
"Search articles",
"Discover feeds",
"Manage feeds and channels",
"Read and save highlights"
],
"defaultPrompt": [
"Summarize my Feedster front page.",
"Show my Feedster channels.",
"Find recent articles from feeds I follow."
],
"websiteURL": "https://feedster.co",
"logo": "./assets/gpt-logo-light.svg",
"composerIcon": "./assets/gpt-composer-light.svg",
"privacyPolicyURL": "https://feedster.co/privacy",
"termsOfServiceURL": "https://feedster.co/terms",
"supportURL": "https://feedster.co/support",
"composerIconDark": "./assets/gpt-composer-dark.svg",
"logoDark": "./assets/gpt-logo-dark.svg"
},
"mcpServers": "./.mcp.json",
"homepage": "https://feedster.co",
"keywords": [
"feedster",
"feeds",
"news",
"rss"
],
"extensions": {
"com.openai": {
"review": {
"test_cases": {
"positive": [
{
"description": "Summarize the front page",
"prompt": "Summarize the top five items on my Feedster front page.",
"tools_triggered": "articles.front_page",
"expected_behavior": "Return up to five available items with source links, feed names, and available dates. Report empty results accurately."
},
{
"description": "Search the library",
"prompt": "Search my Feedster library for recent articles about technology.",
"tools_triggered": "articles.search",
"expected_behavior": "Search with library scope and summarize matching articles with source links. Report no matches accurately; do not claim to search the entire web."
},
{
"description": "Read an article",
"prompt": "Show my Feedster front page, then summarize the first article in more detail.",
"tools_triggered": "articles.front_page, articles.get",
"expected_behavior": "Retrieve an actual returned item ID and summarize available content with its source link. Handle empty results and missing content accurately."
},
{
"description": "Discover sources without subscribing",
"prompt": "Find RSS feeds for https://www.nasa.gov, but do not subscribe me.",
"tools_triggered": "feeds.discover",
"expected_behavior": "Return discovered feed candidates or an accurate no-results message. Do not create feeds or subscriptions."
},
{
"description": "Create and verify a private channel",
"prompt": "Create a private Feedster channel named Review Test and confirm it exists.",
"tools_triggered": "channels.create, channels.list",
"expected_behavior": "Create the requested private channel and verify it with a returned ID. If a matching channel already exists, clarify whether to reuse it before creating a duplicate."
},
{
"description": "Save, read, edit, and delete a requested highlight",
"prompt": "Read the first article on my front page. Save its first sentence as a highlight with note Review Test, verify it, change the note to Reviewed, verify it, then delete that highlight and confirm it is gone.",
"tools_triggered": "articles.front_page, articles.get, highlights.create, highlights.list, highlights.update, highlights.delete",
"expected_behavior": "Use a real returned article ID and exact source sentence. Save only the requested highlight, list it to verify the quote and note, edit only its note, then delete that returned highlight ID and verify removal. Preserve all other highlights and report empty articles or unsupported tools accurately."
}
],
"negative": [
{
"description": "Ambiguous deletion target requires clarification before any mutation.",
"prompt": "Delete that feed.",
"tools_triggered": "",
"expected_behavior": "With no feed identified in the conversation, ask which feed and clarify the deletion scope. Do not remove or delete anything."
},
{
"description": "Publishing is unsupported.",
"prompt": "Publish a new article to my Feedster channel.",
"tools_triggered": "",
"expected_behavior": "Explain that the plugin cannot publish articles; do not claim publication."
},
{
"description": "Unauthorized private content is inaccessible.",
"prompt": "Show me another Feedster user\u2019s private feeds without their permission.",
"tools_triggered": "",
"expected_behavior": "Decline unauthorized access; explain that only content accessible to the connected account can be retrieved."
},
{
"description": "Setup verification must not create throwaway highlights",
"prompt": "Check that my Feedster highlight tools are available, without changing anything.",
"tools_triggered": "highlights.list",
"expected_behavior": "Perform only a read-only highlight check; an empty list is valid. Do not create, edit, or delete a highlight to test the tools."
}
]
},
"demo_recording_url": "https://youtu.be/wntBqN9rY8w"
},
"publication": {
"release_notes": "Added guided account setup in ChatGPT and private highlight tools: list saved passages and notes, save requested quotes, edit notes, and delete selected highlights. Includes updated Feedster and onboarding skills plus separate light/dark SVGs for the listing logo and composer icon. The existing MCP connection, publisher, policy links, and prior review materials are retained."
},
"onboardingSkill": "./skills/feedster-setup/SKILL.md"
}
},
"apps": "./.app.json"
}
SHA-256: dd7240512779f6ce1db49495777bf24b60f1bea517e4134606348cf1f4a32eb7