@face-to-face-it/directus-cli
v0.3.4
Published
CLI client for the Directus API — manage items, schema, auth, and more from the command line
Readme
About The Project
The Directus CLI provides a comprehensive command-line interface for managing Directus CMS instances. Built on top of the official Directus SDK, it offers full CRUD operations for all Directus resources, making it perfect for automation, CI/CD pipelines, and day-to-day management tasks.
Features
- Complete API Coverage — 94 commands covering users, roles, collections, items, files, flows, and more
- Schema Management — Snapshot, diff, and apply schema changes with ease
- Bulk Operations — Export and import data in JSON, CSV, XML, or YAML formats
- Multi-Profile Support — Manage multiple Directus instances with saved connection profiles
- Type-Safe — Built with TypeScript and the official Directus SDK for maximum reliability
- Automation Ready — Perfect for CI/CD pipelines and shell scripting
Built With
Getting Started
Get up and running with the Directus CLI in minutes.
Prerequisites
- Node.js 20 or higher
node --version - A Directus instance (local or remote)
Installation
Global Installation (Recommended)
npm install -g @face-to-face-it/directus-cli
# or
pnpm add -g @face-to-face-it/directus-cliLocal Project Installation
npm install --save-dev @face-to-face-it/directus-cli
# or
pnpm add -D @face-to-face-it/directus-cliUsing npx (No Installation)
npx @face-to-face-it/directus-cli <command>Usage
Quick Start
# Authenticate with your Directus instance
directus-cli auth login https://your-directus.com --email [email protected] --password secret
# Or use a static token
directus-cli auth login https://your-directus.com --token your-token
# Save as a profile for easy reuse
directus-cli profile add production https://your-directus.com --defaultCommon Operations
# List all users
directus-cli users list
# Create a collection
directus-cli collections create articles --note "Blog posts"
# Add a field
directus-cli fields create articles title --type string --required
# Create an item
directus-cli items create articles '{"title": "Hello World"}'
# Upload a file
directus-cli files upload ./image.png --folder uploads
# Export data
directus-cli bulk export articles --format json --output articles.json
# Apply schema changes
directus-cli schema snapshot --output ./schema.yamlFiltering and Sorting
# Filter with conditions
directus-cli users list --filter role=admin
# Multiple filters (AND logic)
directus-cli items list articles --filter status=published --filter featured=true
# JSON filter syntax
directus-cli items list articles --filter '{"date_created":{"_gt":"2024-01-01"}}'
# Sort and paginate
directus-cli users list --sort -date_created --limit 10 --offset 20Commands
| Category | Commands |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Auth & Profiles | auth login, auth logout, auth refresh, auth status, profile add, profile list |
| Users & Permissions | users list, users create, users update, users delete, roles list, roles create, policies list |
| Collections & Fields | collections list, collections create, collections update, collections delete, fields list, fields create, fields update, fields delete |
| Items | items list, items get, items create, items update, items delete |
| Files & Folders | files list, files download, files upload, folders list, folders create, folders update, folders delete |
| Flows & Operations | flows list, flows create, flows trigger, operations list, operations create, operations update |
| Schema | schema snapshot, schema diff, schema apply |
| Bulk Operations | bulk export, bulk import |
| Extensions | extensions list, extensions toggle, extensions search, extensions info, extensions install, extensions uninstall, extensions reinstall, extensions upgrade |
For a complete list, run directus-cli --help or see the Documentation
Roadmap
- [x] Complete CRUD operations for all Directus resources
- [x] Schema management (snapshot, diff, apply)
- [x] Multi-profile support
- [x] Bulk import/export
- [ ] Interactive mode for complex operations
- [ ] Webhook management commands
- [ ] Content versioning support
- [ ] GraphQL query support
See the open issues for a full list of proposed features and known issues.
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
This project uses Conventional Commits and Semantic Release for automated versioning. Please ensure your commits follow the convention:
<type>(<scope>): <description>
types: feat, fix, docs, style, refactor, perf, test, build, ci, choreHow to Contribute
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'feat: add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Top contributors:
License
Distributed under the MIT License. See LICENSE for more information.
Contact
Face-to-Face IT - GitHub Organization
Project Link: https://github.com/Face-to-Face-IT/directus-cli
Acknowledgments
- Directus - The open-source data platform
- Directus SDK - Official JavaScript SDK
- oclif - Open CLI Framework
- Best-README-Template - README template
