Built by Firma de AI, supported by Firma de IT.
This skill connects Nextcloud, Exchange, and YouTube into one practical workflow layer for:
| 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 | cal\ | tasks\ | analytics\ | sync\ | contacts>` | |
| YouTube | Transcript extraction with language fallback | `nexlink youtube transcript\ | languages |
Use this skill when you want to work with:
nexlink youtube transcript (text/JSON, language fallback, save to Nextcloud)# 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"
# 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"
# 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
# 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
# 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
# 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:
nexlink youtube transcript https://www.youtube.com/watch?v=VIDEO_ID
nexlink youtube transcript https://youtu.be/VIDEO_ID --lang ro --format json
nexlink youtube transcript VIDEO_ID --lang ro,en
nexlink youtube transcript VIDEO_ID --lang en --save
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:
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:
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:
nexlink tasks create --subject "Follow-up meeting X" --due "+3d"
## Full Configuration
See [references/setup.md](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](https://github.com/asistent-alex/openclaw-hardshell).
When writing or modifying Python code, see:
- **[Python Standards](https://github.com/asistent-alex/openclaw-hardshell/blob/main/references/languages/python.md)** - PEP 8, type hints, docstrings, security
- **[Testing Standards](https://github.com/asistent-alex/openclaw-hardshell/blob/main/references/testing.md)** - TDD, test pyramid, coverage
- **[Git Workflow](https://github.com/asistent-alex/openclaw-hardshell/blob/main/references/git-workflow.md)** - Conventional commits, PR process
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.
共 2 个版本