Content writing agent skills (article extract / Google News / keyword / rewrite) for Concinno — newspaper3k, gnews, keybert.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file concinno_skills_content-0.1.0.tar.gz.
File metadata
- Download URL: concinno_skills_content-0.1.0.tar.gz
- Upload date:
- Size: 42.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afca3ce393679c7578696c77b584a46cfb5225c78231b5934836956ed0f90886
|
|
| MD5 |
2e81fa0067fe4a3a1133a8940e4a38a4
|
|
| BLAKE2b-256 |
732b462c68492aa10bf479f9af97803f9d70877eff63cdd2f9f6b80d56acdcc7
|
File details
Details for the file concinno_skills_content-0.1.0-py3-none-any.whl.
File metadata
- Download URL: concinno_skills_content-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01c3242c4761fa8e1a570134ed217523800a4e7bdfc896870e5d8bfd043e49a2
|
|
| MD5 |
e205841318c7d6d8e387d2ffd8a31677
|
|
| BLAKE2b-256 |
4c633aed5e67dbd20ec89f8af60643b718b0cafddf6e7d223d5a635915017976
|