Skip to main content

Textor Nexuum — Weave AI clarity into every GitHub issue.

Project description

Textor Nexuum professional branding banner

Textor Nexuum ??

Weave AI clarity into every GitHub issue.

Textor Nexuum is a production-minded Python CLI named nexuum. It triages GitHub issues with Grok, OpenAI-compatible APIs, and now Anthropic Claude via the same structured JSON contract. Output stays safe by default (dry-run first; writes only with --apply).

Install

python -m pip install textor-nexuum

From source:

git clone https://github.com/FratresMedAI/TextorNexuum.git
cd TextorNexuum
python -m pip install -e ".[dev]"

Quick start

nexuum --version
nexuum analyze octocat/Hello-World --limit 3 --verbose
nexuum config init

Without GITHUB_TOKEN, built-in mock issues are used so the CLI still demos cleanly.

New in v1.0 line

  • Anthropic support: if base_url contains anthropic, Nexuum uses /messages + x-api-key + anthropic-version.
  • Configurable duplicate threshold: duplicate_threshold in .nexuum.yaml (default 0.82).
  • Better duplicate detection: weighted score on title + first 200 chars of body.
  • Verbose mode: --verbose prints issue-level reasoning and token usage.
  • API resilience: retry/backoff (3 attempts) for LLM calls with explicit fallback message.

Environment variables

Name Role
GITHUB_TOKEN Real issue data + enables --apply writes.
GROK_API_KEY Key for xAI/OpenAI-compatible style calls.
OPENAI_API_KEY Key for OpenAI-compatible base URLs.
ANTHROPIC_API_KEY Use with --base-url https://api.anthropic.com/v1 and Claude models.

Commands

nexuum analyze owner/repo --limit 10
nexuum analyze owner/repo --issue 42
nexuum analyze owner/repo --format json
nexuum analyze owner/repo --verbose
nexuum analyze owner/repo --apply --yes
nexuum config init
nexuum version

Typer completion is enabled. Install completion with your shell profile if desired (e.g. --install-completion).

Configuration

Resolution order:

  1. .nexuum.yaml
  2. .weaver.yaml (legacy)
  3. ~/.config/nexuum/config.yaml

Example .nexuum.yaml:

model: claude-3-5-sonnet-latest
base_url: https://api.anthropic.com/v1
max_issues: 30
duplicate_threshold: 0.82
allowed_labels: [bug, feature, documentation, question, enhancement]
custom_labels: [needs-triage, good-first-issue]
prompt_additions: ""

Real-world examples

Grok / OpenAI-compatible

nexuum analyze owner/repo --limit 15 --model grok-4.1-fast --base-url https://api.x.ai/v1

Anthropic Claude

set ANTHROPIC_API_KEY=your-key
nexuum analyze owner/repo --limit 15 --model claude-3-5-sonnet-latest --base-url https://api.anthropic.com/v1

Single issue with detailed diagnostics

nexuum analyze owner/repo --issue 123 --verbose

How it works

  1. Load config + CLI flags into NexuumConfig.
  2. Fetch issues from GitHub (or mock fixtures when unauthenticated).
  3. Build prompt from src/nexuum/prompts.py.
  4. Call selected LLM provider (OpenAI-compatible or Anthropic).
  5. Parse strict JSON into TriageResult; fallback to heuristics on failures.
  6. Run duplicate checks with configurable threshold and confidence.
  7. Render Rich table + exports (md, json); optional guarded apply flow.

Comparison to other tools

  • GitHub native triage: Great for manual workflows, but no deterministic structured AI output or local automation.
  • Dosu: Strong hosted assistant model, less local CLI control over provider routing/fallback behavior.
  • PR-Agent: PR-focused automation; Textor Nexuum is issue-triage focused with explicit duplicate heuristics.
  • Sweep: Strong coding automation path; Nexuum is intentionally lightweight triage-first with safe dry-run defaults.

GitHub Action (summary-only)

Use .github/workflows/nexuum.yml: analyze + post one summary comment. It does not run --apply.

Quality gate

ruff check . --fix && ruff format .
mypy src/nexuum --strict
pytest tests/ -q

Support

Issues and PRs: github.com/FratresMedAI/TextorNexuum/issues

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

textor_nexuum-1.0.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file textor_nexuum-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: textor_nexuum-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for textor_nexuum-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e965233b81724191b1c5e4d6b4c3d87c14a4f01b8f469b5e035a46b7dd2cf0e7
MD5 5a433feffebf19561e1e7ef79a71562a
BLAKE2b-256 0d65475b40a336daac9cb09cb8a50ca4f4d17983ed0861bd1045d68f843304c0

See more details on using hashes here.

Supported by

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