Fluent CI CLI
Fluent CI is a CI/CD tool that allows you to build, test, and deploy your code. It is a self-hosted solution built on top of Dagger, Wasm and Deno, can be run locally or on a server, and is completely free and open-source.
It is also a registry of pre-built pipelines. This means you don’t have to write your CI/CD configuration from scratch. You can simply search for and use pipelines that others have already built for frameworks like Django, React, Node, etc.
✨ Features
- Single Command: Manage your CI/CD pipeline locally with a single command.
- Runs everywhere: Run your pipeline on any machine - whether it’s local, remote, cloud-based, physical server, or a VM & any architecture x86 or ARM.
- Export to Your CI/CD: Export your FluentCI pipeline to any CI Provider like GitHub Actions, GitLab CI, Azure Pipelines, AWS CodePipeline, CircleCI etc.
- Web UI: Manage your pipelines with a web-based user interface, see FluentCI Studio.
- Registry: Search for reusable pipelines in the FluentCI Registry.
- Nix: Run your pipeline in a Nix environment instead of Docker (optional).
- Extensibility: Enable extensibility with plugin. Write your own plugin in TypeScript, Rust or any language that compiles to WebAssembly.
- Works on my Machine: Never experience it again.
🚚 Installation
using Deno (recommended) :
deno install -A -g -r https://cli.fluentci.io -n fluentci
using Bash (Linux/macOS) :
curl -fsSL https://cli.fluentci.io | bash
using Homebrew :
brew install fluentci-io/tap/fluentci
using Pkgx :
pkgx install fluentci
using Nix :
nix profile install --experimental-features "nix-command flakes" github:fluentci-io/fluentci
using Docker :
docker run --privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-it ghcr.io/fluentci-io/cli:latest run base_pipeline
Or download the binary from the releases page and add it to your PATH.
Requirements:
- Deno 1.42 or higher. See Deno Installation for more information.
- Dagger 0.11.7 or higher. See Dagger Installation for more information.
📦 Downloads
Latest (Desktop):
Mac
: arm64: fluentci-studio_v0.1.8_arm64.dmg intel: fluentci-studio_v0.1.8_x64.dmgLinux
: fluentci-studio_v0.1.8.AppImage
Latest (CLI):
Mac
: arm64: fluentci_v0.15.8_aarch64-apple-darwin.tar.gz intel: fluentci_v0.15.8_x86_64-apple-darwin.tar.gzLinux
: intel: fluentci_v0.15.8_x86_64-unknown-linux-gnu.tar.gz arm64: fluentci_v0.15.8_aarch64-unknown-linux-gnu.tar.gz
✨ Quick Start
Setup a new pipeline in your current directory and run it by using the following commands:
fluentci init # Initialize a new pipeline in the current directory
fluentci # Run the pipeline
Or start FluentCI Studio:
fluentci studio
🚀 Usage
fluentci --help
Usage: fluentci [pipeline] [jobs...]
Version: 0.15.8
Description:
.
______ __ _________
/ __/ /_ _____ ___ / /_/ ___/ _/
/ _// / // / -_) _ \/ __/ /___/ /
/_/ /_/\_,_/\__/_//_/\__/\___/___/
FluentCI CLI - An Open Source CI/CD tool written in TypeScript (Deno) based on Wasm Plugins and Dagger
Options:
-h, --help - Show this help.
-V, --version - Show the version number for this program.
-r, --reload - Reload pipeline source cache
-w, --wasm - Run pipeline as WebAssembly Module
--remote-exec - Run pipeline on remote agent
-*, --* [args] - Pass arguments to pipeline
Commands:
run <pipeline> [jobs...] - Run a pipeline
init [pipeline-name] - Initialize a new pipeline
search <query> - Search for reusable pipelines
upgrade - Upgrade FluentCI CLI to the latest version
cache [pipeline] - Cache remote dependencies of a pipeline
ls, list [pipeline] - List all jobs in a pipeline
docs, man [pipeline] - Show documentation for a pipeline
doctor - Check if FluentCI CLI is installed correctly
env - Show environment variables (read from .fluentci/.env file)
login - Login to FluentCI
publish - Publish a pipeline to FluentCI Registry
agent - Start FluentCI Runner Agent
whoami - Show current logged in user
repl [pipelines...] - Start FluentCI REPL
studio - Start FluentCI Studio, a web-based user interface
project - Manage projects
server - Start FluentCI GraphQL Server
up - Start services
down - Stop services
ps - List services
status <service> - Show status of a service
start <service> - Start a service
restart <service> - Restart a service
stop <service> - Stop a service
echo <service> - Stream logs of a service
community - Join our community Discord to chat with us
📚 Documentation
✍️ Feedback
This repository is the central place to collect feedback and issues related to FluentCI CLI.
Please open an issue if you want to leave feedback. Feel free to also join our Discord server
🤝 Contributing
We would love to hear your feedback or suggestions. The best way to reach us is on Discord.
We also welcome pull requests into this repo. See CONTRIBUTING.md for information on setting up this repo locally.