A Kubernetes Query Language
See the codeCyphernetes turns this: π£
# Delete all pods that are not running
kubectl get pods --all-namespaces --field-selector 'status.phase!=Running' \
-o 'custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name' \
--no-headers | xargs -L1 -I {} bash -c 'set -- {}; kubectl delete pod $2 -n $1'
Into this: π€©
// Do the same thing!
MATCH (p:Pod)
WHERE p.status.phase != "Running"
DELETE p;
π Documentation
For comprehensive documentation, visit our official documentation site at https://cyphernet.es/docs.
Cyphernetes is a Cypher-inspired query language for Kubernetes. A mixture of ASCII-art, SQL and JSONPath, it lets the user express Kubernetes graph operations in a fun and creative way. Cyphernetes works out-of-the-box with your CRDs, supports multi-cluster queries, and more.
There are multiple ways to run Cyphernetes queries:
cyphernetes web from your terminal, then visiting http://localhost:8080cyphernetes shell in your terminalcyphernetes query "your query" - great for scripting and CI/CD pipelineskubectl cypher plugin (install using Krew or download from latest release)// Get the desired and running replicas for all deployments
MATCH (d:Deployment)
RETURN d.spec.replicas AS desiredReplicas,
d.status.availableReplicas AS runningReplicas;
{
"d": [
{
"desiredReplicas": 2,
"name": "coredns",
"runningReplicas": 2
}
]
}
Query executed in 9.081292ms
Cyphernetes' superpower is understanding the relationships between Kubernetes resource kinds.
This feature is expressed using the arrows (->) you see in the example queries.
Relationships let us express connected operations in a natural way, and without having to worry about the underlying Kubernetes API:
// This is similar to `kubectl expose`
MATCH (d:Deployment {name: "nginx"})
CREATE (d)->(s:Service);
Created services/nginx
Query executed in 30.692208ms
Using Homebrew:
brew install cyphernetes
Using go:
go install github.com/avitaltamir/cyphernetes/cmd/cyphernetes@latest
Alternatively, grab a binary from the Releases page.
The Cyphernetes monorepo is a multi-package project that includes the core Cyphernetes Go package, a CLI, a web client, and an operator.
.
βββ cmd # The CLI (this is where the cyphernetes binary lives)
β βββ cyphernetes
β βββ ...
βββ docs # The cyphernet.es website
β βββ ...
βββ operator # The operator
β βββ ...
βββ pkg
β βββ core # The core Cyphernetes package (parser and engine behind the language features)
β βββ provider # An interface for different backend implementations
β βββ apiserver # A client for the Kubernetes API server
βββ web # The web client
β βββ src
β βββ ...
To get started with development:
Clone the repository:
git clone https://github.com/avitaltamir/cyphernetes.git
Navigate to the project directory:
cd cyphernetes
Running make will build the operator manifests and web client static assets, then build the binary and run the tests.
make
make web-build
make operator-build
Contributions are welcome! Please feel free to submit pull requests, open issues, and provide feedback.
Cyphernetes is open-sourced under the Apache 2.0 license. See the LICENSE file for details.
(top 24 of 29)
886 followers Β· starred Feb 2025
97 followers Β· starred Dec 2024
958 followers Β· starred Nov 2025
841 followers Β· starred Dec 2024
A Kubernetes Query Language
See the codeCyphernetes turns this: π£
# Delete all pods that are not running
kubectl get pods --all-namespaces --field-selector 'status.phase!=Running' \
-o 'custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name' \
--no-headers | xargs -L1 -I {} bash -c 'set -- {}; kubectl delete pod $2 -n $1'
Into this: π€©
// Do the same thing!
MATCH (p:Pod)
WHERE p.status.phase != "Running"
DELETE p;
π Documentation
For comprehensive documentation, visit our official documentation site at https://cyphernet.es/docs.
Cyphernetes is a Cypher-inspired query language for Kubernetes. A mixture of ASCII-art, SQL and JSONPath, it lets the user express Kubernetes graph operations in a fun and creative way. Cyphernetes works out-of-the-box with your CRDs, supports multi-cluster queries, and more.
There are multiple ways to run Cyphernetes queries:
cyphernetes web from your terminal, then visiting http://localhost:8080cyphernetes shell in your terminalcyphernetes query "your query" - great for scripting and CI/CD pipelineskubectl cypher plugin (install using Krew or download from latest release)// Get the desired and running replicas for all deployments
MATCH (d:Deployment)
RETURN d.spec.replicas AS desiredReplicas,
d.status.availableReplicas AS runningReplicas;
{
"d": [
{
"desiredReplicas": 2,
"name": "coredns",
"runningReplicas": 2
}
]
}
Query executed in 9.081292ms
Cyphernetes' superpower is understanding the relationships between Kubernetes resource kinds.
This feature is expressed using the arrows (->) you see in the example queries.
Relationships let us express connected operations in a natural way, and without having to worry about the underlying Kubernetes API:
// This is similar to `kubectl expose`
MATCH (d:Deployment {name: "nginx"})
CREATE (d)->(s:Service);
Created services/nginx
Query executed in 30.692208ms
Using Homebrew:
brew install cyphernetes
Using go:
go install github.com/avitaltamir/cyphernetes/cmd/cyphernetes@latest
Alternatively, grab a binary from the Releases page.
The Cyphernetes monorepo is a multi-package project that includes the core Cyphernetes Go package, a CLI, a web client, and an operator.
.
βββ cmd # The CLI (this is where the cyphernetes binary lives)
β βββ cyphernetes
β βββ ...
βββ docs # The cyphernet.es website
β βββ ...
βββ operator # The operator
β βββ ...
βββ pkg
β βββ core # The core Cyphernetes package (parser and engine behind the language features)
β βββ provider # An interface for different backend implementations
β βββ apiserver # A client for the Kubernetes API server
βββ web # The web client
β βββ src
β βββ ...
To get started with development:
Clone the repository:
git clone https://github.com/avitaltamir/cyphernetes.git
Navigate to the project directory:
cd cyphernetes
Running make will build the operator manifests and web client static assets, then build the binary and run the tests.
make
make web-build
make operator-build
Contributions are welcome! Please feel free to submit pull requests, open issues, and provide feedback.
Cyphernetes is open-sourced under the Apache 2.0 license. See the LICENSE file for details.
(top 24 of 29)
886 followers Β· starred Feb 2025
97 followers Β· starred Dec 2024
958 followers Β· starred Nov 2025
841 followers Β· starred Dec 2024