โ† Back to skills
extension
Category: OtherAPI key required

Nexlink

๐Ÿ”— NexLink โ€” Enterprise Connector for Nextcloud, Exchange & YouTube. Built by Firma de AI. Email, calendar, tasks, file management, document understanding, t...

personAuthor: asistent-alexhubclawhub

NexLink โ€” Nextcloud, Exchange & YouTube Connector

Built by Firma de AI, supported by Firma de IT.

This skill connects Nextcloud, Exchange, and YouTube into one practical workflow layer for:

  • Nextcloud: file operations, sharing, document understanding, workflow extraction
  • Exchange: email, calendar, tasks, analytics
  • YouTube: transcript extraction with language fallback

Available Modules

| Module | Description | Command | |--------|-------------|---------| | Nextcloud | Files, sharing, summarization, Q&A, action extraction, Contacts (CardDAV) | nexlink files <...> \| nexlink contacts --source nextcloud <...> | | Exchange | Email, Calendar, Tasks, Analytics, Contacts | nexlink <mail\|cal\|tasks\|analytics\|sync\|contacts> | | YouTube | Transcript extraction with language fallback | nexlink youtube transcript\|languages <url> |

What it solves

Use this skill when you want to work with:

  • Nextcloud files: listing, search, upload, download, move, sharing
  • document understanding: extract-text, summarize, ask-file
  • workflow extraction: extract actions from files and create Exchange tasks
  • YouTube transcripts: nexlink youtube transcript <url> (text/JSON, language fallback, save to Nextcloud)
  • emails, replies, drafts and attachments in Exchange
  • calendar, meetings and follow-up tasks
  • Exchange tasks, including delegate access
  • Contacts: Exchange contacts (EWS) and Nextcloud contacts (CardDAV)

Quick Start

Email

# Connection
nexlink mail connect

# List emails
nexlink mail read --limit 10
nexlink mail read --unread

# Send email
nexlink mail send --to "client@example.com" --subject "Offer" --body "..."

# Reply
nexlink mail reply --id EMAIL_ID --body "Reply"

Calendar

# Events
nexlink cal today
nexlink cal week
nexlink cal list --days 7

# Create event
nexlink cal create --subject "Meeting" --start "2024-01-15 14:00" --duration 60

# With attendees
nexlink cal create --subject "Team Meeting" --start "2024-01-15 14:00" --to "user1@example.com,user2@example.com"

Tasks

# List
nexlink tasks list
nexlink tasks list --overdue

# Create
nexlink tasks create --subject "Review proposal" --due "+7d" --priority high

# Complete
nexlink tasks complete --id TASK_ID

Analytics (Email Statistics)

# General statistics
nexlink analytics stats --days 30

# Average response time
nexlink analytics response-time --days 7

# Top senders
nexlink analytics top-senders --limit 20

# Activity heatmap
nexlink analytics heatmap --days 30

# Statistics per folder
nexlink analytics folders

# Full report
nexlink analytics report --days 30

Contacts

# Exchange contacts (default source)
nexlink contacts list
nexlink contacts list --limit 10

# Get Exchange contact by ID
nexlink contacts get --id CONTACT_ID

# Create Exchange contact
nexlink contacts create --name "John Doe" --email "john@example.com" --phone "+40-700-000-000"
nexlink contacts create --name "Acme Corp" --phone "+40-711-111-111" --org "Acme" --title "CEO"

# Update Exchange contact
nexlink contacts update --id CONTACT_ID --phone "+40-722-222-222"

# Delete Exchange contact (moves to trash)
nexlink contacts delete --id CONTACT_ID

# Search contacts
nexlink contacts search --query "Acme"

# Nextcloud contacts (CardDAV โ€” use --source nextcloud)
nexlink contacts addressbooks --source nextcloud
nexlink contacts list --source nextcloud
nexlink contacts list --source nextcloud --addressbook "/remote.php/dav/addressbooks/users/alex/contacts/"

# Get Nextcloud contact by UID
nexlink contacts get --uid CONTACT_UID --source nextcloud

# Create Nextcloud contact
nexlink contacts create --source nextcloud --name "Jane Doe" --email "jane@example.com" --phone "+40-733-333-333"

# Update Nextcloud contact
nexlink contacts update --uid CONTACT_UID --source nextcloud --phone "+40-744-444-444"

# Delete Nextcloud contact
nexlink contacts delete --uid CONTACT_UID --source nextcloud

Files (Nextcloud)

# List and search
nexlink files list /Documents/
nexlink files search contract /Clients/

# Upload / Download
nexlink files upload /local/report.pdf /Documents/
nexlink files download /Documents/report.pdf /local/

# Document understanding
nexlink files extract-text /Clients/contract.docx
nexlink files summarize /Clients/contract.docx
nexlink files ask-file /Clients/contract.docx "When is the renewal due?"

# Workflow extraction
nexlink files extract-actions /Clients/contract.txt
nexlink files create-tasks-from-file /Clients/contract.txt
nexlink files create-tasks-from-file /Clients/contract.txt --select 1,2 --execute

### YouTube Transcripts

Extract video subtitles with automatic language fallback:

```bash
# Basic text transcript (English)
nexlink youtube transcript https://www.youtube.com/watch?v=VIDEO_ID

# Romanian transcript with JSON output (includes timestamps)
nexlink youtube transcript https://youtu.be/VIDEO_ID --lang ro --format json

# Try multiple languages, fall back in order
nexlink youtube transcript VIDEO_ID --lang ro,en

# Save transcript to Nextcloud
nexlink youtube transcript VIDEO_ID --lang en --save

# List available caption languages
nexlink youtube languages https://www.youtube.com/watch?v=VIDEO_ID

Note: Requires pip install youtube-transcript-api for the underlying library.

Combined Workflows

Email + Files

Send email with attachment from Nextcloud:

# Download from Nextcloud and send
nexlink files download /Documents/offer.pdf /tmp/
nexlink mail send --to "client@example.com" --subject "Offer" --body "..." --attach /tmp/offer.pdf

Save attachment from email to Nextcloud:

# Download attachment and upload to Nextcloud
nexlink mail download-attachment --id EMAIL_ID --name "contract.pdf" --output /tmp/
nexlink files upload /tmp/contract.pdf /Contracts/

Calendar + Tasks

Create task from meeting request:

# After meeting, create follow-up task
nexlink tasks create --subject "Follow-up meeting X" --due "+3d"

Full Configuration

See references/setup.md for detailed configuration.

Positioning public / branding

For public listings, documentation, and SEO copy, prefer this positioning:

  • Public title: Firma de AI โ€” Exchange & Nextcloud Assistant
  • Subtitle: Email, files, tasks, and document workflows for teams
  • Brand line: Built by Firma de AI, supported by Firma de IT.
  • Links: https://firmade.ai and https://firmade.it

This keeps the internal skill name nexlink while making the public positioning more accurate and searchable.

Coding Standards

This project follows the Hardshell Coding Standards.

When writing or modifying Python code, see:

Key rules:

  • PEP 8 formatting - use black for formatting, ruff for linting
  • Type hints - required for all function parameters and return types
  • Docstrings - Google-style for all public functions and classes
  • Testing - pytest with pytest-cov for coverage
  • Security - never use pickle or eval() on untrusted input
  • Dependencies - use uv or poetry, pin versions, audit with pip-audit

Module Structure

modules/
โ”œโ”€โ”€ exchange/           # Email, Calendar, Tasks (Exchange on-prem)
โ”‚   โ”œโ”€โ”€ SKILL.md       # Module documentation
โ”‚   โ”œโ”€โ”€ mail.py        # Email operations
โ”‚   โ”œโ”€โ”€ cal.py         # Calendar operations
โ”‚   โ”œโ”€โ”€ tasks.py       # Task operations
โ”‚   โ”œโ”€โ”€ sync.py        # Sync and reminders
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ nextcloud/          # File management, doc understanding, workflow extraction
โ”‚   โ”œโ”€โ”€ SKILL.md       # Module documentation
โ”‚   โ””โ”€โ”€ nextcloud.py   # File operations and analysis
โ””โ”€โ”€ (future modules)

Notes

  • Tasks are created in the default mailbox's Tasks folder or in the target mailbox when using delegate access
  • For collaborative tasks, use calendar events with attendees
  • Self-signed certificates require verify_ssl: false

License

MIT License - see LICENSE file for details.