Skip to main content

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-v2 by default) to ~/.cache/huggingface/. One-shot per machine. Larger / multilingual models are selectable via the model kwarg; KeyBERT's own README lists the options. sentence-transformers itself is a hard dependency of keybert>=0.8 and will be installed automatically — the full dep chain including transformers + torch takes ~1-2GB of disk.
  • newspaper3k + Python 3.12/3.13: newspaper3k has not seen an upstream release since 2018 and pins lxml. If pip install fails on 3.12+ due to a C-extension build, the usual fix is pip install --upgrade lxml_html_clean + the latest lxml wheel. 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)

Source distribution for concinno-skills-content 0.1.0
File Size Uploaded
concinno_skills_content-0.1.0.tar.gz 42.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for concinno-skills-content 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

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