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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concinno_skills_content-0.1.0.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concinno_skills_content-0.1.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

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

Hashes for concinno_skills_content-0.1.0.tar.gz
Algorithm Hash digest
SHA256 afca3ce393679c7578696c77b584a46cfb5225c78231b5934836956ed0f90886
MD5 2e81fa0067fe4a3a1133a8940e4a38a4
BLAKE2b-256 732b462c68492aa10bf479f9af97803f9d70877eff63cdd2f9f6b80d56acdcc7

See more details on using hashes here.

File details

Details for the file concinno_skills_content-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for concinno_skills_content-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 01c3242c4761fa8e1a570134ed217523800a4e7bdfc896870e5d8bfd043e49a2
MD5 e205841318c7d6d8e387d2ffd8a31677
BLAKE2b-256 4c633aed5e67dbd20ec89f8af60643b718b0cafddf6e7d223d5a635915017976

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page