# Falcoctl
## falcoctl artifact
Even if it's clear for a dev what artifacts are, it's not a term commonly used by SRE/SecOps, and it's confusing to list all types with same command (even if we can filter with an arg).
To avoid confusion, I propose to replace `falcoctl artifacts` by `falcoctl plugin` and `falcoctl driver`.
For plugins:
* `falcoctl plugin list`: list all official plugins
* `falcoctl plugin search`: search a plugin
* `falcoctl plugin install`: install a plugin
* `falcoctl plugin remove`: uninstall a plugin
For rules:
* `falcoctl rule list`: list all official rules
* `falcoctl rule search`: search a rule
* `falcoctl rule install`: install a rule
* `falcoctl rule remove`: uninstall a rule
For drivers:
* `falcoctl driver list`: list all official drivers (`--type` to filter between kmod and ebpf)
* `falcoctl driver search`: search a driver (`--type` to filter between kmod and ebpf)
* `falcoctl driver install`: install a driver (it replaces the loading function from this [script](https://github.com/falcosecurity/falco/blob/master/scripts/falco-driver-loader))
* `falcoctl driver remove`: uninstall a driver
### falcoctl driver
In the last months, we added in test-infra the creation of .json listing the drivers:
* https://download.falco.org/driver/site/index.json
* https://download.falco.org/driver/site/3.0.1%2Bdriver.json (example for 1 driver version)
These files could be used for the `list` and `search` subcommands.
#### falcoctl driver search
The most common issue the adopters have with the installation of Falco is to check the compatibility of the drivers with their systems.
A command `falcoctl driver search --current` could check if some precompiled drivers are available for the locale system.
### falcoctl rule list
The API endpoint is not available in the gRPC contract but we can imagine having a way to list the enabled rules in Falco could be useful `falcoctl rule list --enabled`.
### falcoctl rule enable/disable
If the gRPC allows it, it gives to the user the possibility to enable/disable rules on the fly.
## More functions
### falcoctl check
`checks` if we can install falco with precompiled drivers in the locale or remote system (k8s, vm). It replaces check functions from https://github.com/falcosecurity/falco/blob/master/scripts/falco-driver-loader
### falcoctl connect
It connect to a falco through gRPC to get the livestream of events