Privacy-focused CLI tool for managing FYI.org.nz official information requests
# Install
pip install fyi-cli
# Initialize
fyi init-db
# Create your first request
fyi register-request ministry-of-justice "OIA Request" "Request body..." --status draft
# Generate submission URL
fyi build-prefilled-url 1
# Track and manage requests
fyi list-requests
fyi dashboard --output dashboard.htmlFull guide: QUICKSTART.md
- π Privacy-First: All data stored locally, optional encryption
- π Track Requests: Monitor OIA requests from creation to completion
- π€ Automated Monitoring: Watch FYI.org.nz for updates automatically
- π Reports & Analytics: Generate dashboards, attention reports, handover docs
- π Secure Storage: Encrypted credentials, OS keyring integration
- π Alaveteli Compatible: Works with any Alaveteli instance (FYI, WDTK, FDS)
- π» CLI + Web UI: Command-line and web interface options
- π¦ Export Options: JSON, CSV, HTML, PDF export capabilities
pip install fyi-cliDownload from Releases:
- Windows:
fyi-cli-win.exe - macOS:
fyi-cli-macos - Linux:
fyi-cli-linux
git clone https://github.com/yourusername/fyi-cli.git
cd fyi-cli
pip install -e ".[dev]"Full installation guide: INSTALL.md
| Document | Description |
|---|---|
| QUICKSTART.md | 5-minute getting started guide |
| USER_GUIDE.md | Comprehensive user documentation |
| INSTALL.md | Installation guide (Windows/Mac/Linux) |
| API_KEY_SETUP.md | How to get and configure API key |
| CONFIGURATION.md | Configuration reference |
| TROUBLESHOOTING.md | Troubleshooting guide |
| FAQ.md | Frequently asked questions |
| CHANGELOG.md | Version history |
| CONTRIBUTING.md | How to contribute |
Please do NOT report security vulnerabilities through public GitHub issues.
Report security issues to: security@fyi-cli.example.com
Or use GitHub's private vulnerability reporting:
https://github.com/yourusername/fyi-cli/security/advisories/new
Security Policy: SECURITY.md
- β AES-256-GCM encryption for sensitive data
- β PBKDF2-HMAC-SHA256 key derivation
- β OS keyring integration for credential storage
- β Tamper-evident audit logging
- β Secure session management
- β Input validation and sanitization
- β Security headers (CSP, HSTS, X-Frame-Options)
- β Automated security scanning (CodeQL, pip-audit, bandit)
# Run all tests
pytest
# Run with coverage
pytest --cov=fyi_system --cov-report=html
# Run specific test file
pytest tests/test_alaveteli_client.pyTest Coverage: >80% (target)
We welcome contributions! See CONTRIBUTING.md for guidelines.
# Fork and clone
git clone https://github.com/YOUR_USERNAME/fyi-cli.git
cd fyi-cli
# Set up development environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -e ".[dev]"
# Run tests
pytest
# Make your changes, then submit a PR
git commit -m "feat: Add awesome feature"
git push origin feature/awesome-featurePlease note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
| Phase | Status | Progress |
|---|---|---|
| Phase 1.1: Documentation | β Complete | 100% |
| Phase 1.2: Packaging | β³ In Progress | 0% |
| Phase 1.3: UX Improvements | β³ Pending | 0% |
| Phase 2: Beta Release | β³ Pending | 0% |
| Phase 3: Public Release | β³ Pending | 0% |
Target Release Date: 2026-03-30
Release Plan: RELEASE_PLAN.md
FYI CLI works with any Alaveteli-based platform:
| Platform | Region | URL |
|---|---|---|
| FYI.org.nz | New Zealand | https://fyi.org.nz |
| WhatDoTheyKnow | United Kingdom | https://www.whatdotheyknow.com |
| FragDenStaat | Germany | https://fragdenstaat.de |
| Alaveteli | Any | Self-hosted instances |
# Database
fyi init-db # Initialize database
fyi config show # Show configuration
# Requests
fyi register-request ... # Create new request
fyi list-requests # List all requests
fyi request-detail <id> # View request details
fyi set-status <id> <status> # Update status
# Submission
fyi build-prefilled-url <id> # Generate submission URL
# Monitoring
fyi ingest-feed <url> # Ingest RSS/Atom feed
fyi scheduler <url> # Run continuous monitoring
# Reports
fyi dashboard --output ... # Generate dashboard
fyi attention-report # Generate attention report
fyi handover --output ... # Generate handover document
# Export
fyi export-requests # Export all requests
fyi export-bundle <id> # Export request bundle
# Security
fyi privacy-audit # Privacy compliance check
fyi health-check # System health verificationFull CLI reference: See fyi --help or USER_GUIDE.md
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FYI CLI β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β CLI Commands β Web UI β Scheduler β Reports β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Alaveteli API Client β
β (Read API + Write API support) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β SQLite Database β
β (tracked_requests, authorities, feed_events, etc.) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β FYI.org.nz / Alaveteli API β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
This project is licensed under the MIT License - see the LICENSE file for details.
- Built on the Alaveteli platform by mySociety
- Inspired by the transparency work of FYI.org.nz
- Uses cryptography for encryption
- Documentation: https://fyi-cli.readthedocs.io/
- Issues: https://github.com/yourusername/fyi-cli/issues
- Discussions: https://github.com/yourusername/fyi-cli/discussions
- Email: support@fyi-cli.example.com
Made with β€οΈ for transparency and privacy