concinno-skills-content
Content-writer agent skills for Concinno — article extraction, Google News search, keyword extraction, rule-based text rewrite. Native Python only; no API keys needed for the MVP surface.
Status
MVP (0.1.0) — four tools, all offline-cleanable. This is the fourth
sub-package in the concinno-skills-* ecosystem (after -google), built
to the same entry-points + Tool-protocol pattern.
Tools
| Tool | Action(s) | Library | Concurrency-safe |
|---|---|---|---|
ArticleExtract |
parse |
newspaper3k |
False (HTTP + lazy models) |
GoogleNewsSearch |
search |
gnews |
False (HTTP) |
KeywordExtract |
extract |
keybert + sentence-transformers |
True |
TextRewrite |
rewrite / shorten / remove_ads |
stdlib only | True |
Install
pip install concinno-skills-content
Heads-up before first use:
- KeyBERT downloads a ~90MB SBERT model on first call
(
all-MiniLM-L6-v2by default) to~/.cache/huggingface/. One-shot per machine. Larger / multilingual models are selectable via themodelkwarg; KeyBERT's own README lists the options.sentence-transformersitself is a hard dependency ofkeybert>=0.8and will be installed automatically — the full dep chain includingtransformers+torchtakes ~1-2GB of disk. newspaper3k+ Python 3.12/3.13:newspaper3khas not seen an upstream release since 2018 and pinslxml. Ifpip installfails on 3.12+ due to a C-extension build, the usual fix ispip install --upgrade lxml_html_clean+ the latestlxmlwheel. Tracking issue: https://github.com/codelucas/newspaper/issues.
No OAuth, no API keys — every MVP tool uses public RSS / local compute
only. _auth.py is a placeholder for future paid-API sub-packages.
Usage via Concinno ToolRegistry
When the consumer sets CONCINNO_LOAD_PLUGINS=1, the default registry
auto-mounts all four tools:
import os
os.environ["CONCINNO_LOAD_PLUGINS"] = "1"
from concinno.tools.registry import get_default_registry
reg = get_default_registry()
names = set(reg.list_deferred())
assert {"ArticleExtract", "GoogleNewsSearch",
"KeywordExtract", "TextRewrite"} <= names
tool = reg.get("ArticleExtract")
article = tool.call(
action="parse",
url="https://news.example/article-url",
lang="en",
)
Direct Python usage
from concinno_skills_content import (
ArticleExtract, GoogleNewsSearch,
KeywordExtract, TextRewrite,
)
# 1) Discover
search = GoogleNewsSearch().call(
action="search",
query="AI agents",
limit=5,
lang="en",
country="US",
period="7d",
)
# 2) Extract
article = ArticleExtract().call(
action="parse",
url=search["items"][0]["url"],
lang="auto", # collapsed to "en" — newspaper3k has no real auto
)
# 3) Keyword SEO
kws = KeywordExtract().call(
action="extract",
text=article["text"],
top_n=10,
ngram_range=[1, 2],
)
# 4) Clean copy for downstream LLM
clean = TextRewrite().call(
action="remove_ads", text=article["text"],
)["text"]
clean = TextRewrite().call(
action="rewrite", text=clean,
)["text"]
All tools return either a structured success dict or {"error": "..."}
— never raise. Matches the rest of the Concinno tool ecosystem.
License
Apache-2.0. See LICENSE in the Concinno monorepo.
Metadata
Release files for concinno-skills-content 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| concinno_skills_content-0.1.0.tar.gz | 42.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| concinno_skills_content-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.1 kB
Release files / concinno_skills_content-0.1.0.tar.gz
| Download URL | concinno_skills_content-0.1.0.tar.gz |
|---|---|
| Size | 42.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
afca3ce393679c7578696c77b584a46cfb5225c78231b5934836956ed0f90886
|
|
BLAKE2b-256 checksum How to use checksums |
732b462c68492aa10bf479f9af97803f9d70877eff63cdd2f9f6b80d56acdcc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / concinno_skills_content-0.1.0-py3-none-any.whl
| Download URL | concinno_skills_content-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
01c3242c4761fa8e1a570134ed217523800a4e7bdfc896870e5d8bfd043e49a2
|
|
BLAKE2b-256 checksum How to use checksums |
4c633aed5e67dbd20ec89f8af60643b718b0cafddf6e7d223d5a635915017976
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|