diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml
index 6161bd4edc11c00155f7dabc59bd10e666d1e38b..1c3e3cf6a04e2939a4f586dfeed8948dc3a15627 100644
--- a/.github/workflows/e2e.yaml
+++ b/.github/workflows/e2e.yaml
@@ -54,6 +54,9 @@ jobs:
           ./bin/tk create source git podinfo \
             --url https://github.com/stefanprodan/podinfo  \
             --tag-semver=">=3.2.3"
+      - name: tk get sources git
+        run: |
+          ./bin/tk get sources git
       - name: tk create kustomization
         run: |
           ./bin/tk create kustomization podinfo \
@@ -68,6 +71,9 @@ jobs:
       - name: tk sync kustomization --with-source
         run: |
           ./bin/tk sync kustomization podinfo --with-source
+      - name: tk get kustomizations
+        run: |
+          ./bin/tk get kustomizations
       - name: tk check
         run: |
           ./bin/tk check
diff --git a/cmd/tk/get.go b/cmd/tk/get.go
new file mode 100644
index 0000000000000000000000000000000000000000..6a23315ddf9e5e9b2eb8237cc094955e55068b53
--- /dev/null
+++ b/cmd/tk/get.go
@@ -0,0 +1,14 @@
+package main
+
+import (
+	"github.com/spf13/cobra"
+)
+
+var getCmd = &cobra.Command{
+	Use:   "get",
+	Short: "Get commands",
+}
+
+func init() {
+	rootCmd.AddCommand(getCmd)
+}
diff --git a/cmd/tk/get_kustomization.go b/cmd/tk/get_kustomization.go
new file mode 100644
index 0000000000000000000000000000000000000000..c3101f360371ba0eb9e67e8c4548337333e2d5b8
--- /dev/null
+++ b/cmd/tk/get_kustomization.go
@@ -0,0 +1,63 @@
+package main
+
+import (
+	"context"
+
+	kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1alpha1"
+	"github.com/spf13/cobra"
+	corev1 "k8s.io/api/core/v1"
+	"sigs.k8s.io/controller-runtime/pkg/client"
+)
+
+var getKsCmd = &cobra.Command{
+	Use:     "kustomizations",
+	Aliases: []string{"ks"},
+	Short:   "Get kustomizations status",
+	Long: `
+The get kustomizations command prints the status of the resources.`,
+	RunE: getKsCmdRun,
+}
+
+func init() {
+	getCmd.AddCommand(getKsCmd)
+}
+
+func getKsCmdRun(cmd *cobra.Command, args []string) error {
+	ctx, cancel := context.WithTimeout(context.Background(), timeout)
+	defer cancel()
+
+	kubeClient, err := utils.kubeClient(kubeconfig)
+	if err != nil {
+		return err
+	}
+
+	var list kustomizev1.KustomizationList
+	err = kubeClient.List(ctx, &list, client.InNamespace(namespace))
+	if err != nil {
+		return err
+	}
+
+	if len(list.Items) == 0 {
+		logFailure("no kustomizations found in %s namespace", namespace)
+		return nil
+	}
+
+	for _, kustomization := range list.Items {
+		isInitialized := false
+		for _, condition := range kustomization.Status.Conditions {
+			if condition.Type == kustomizev1.ReadyCondition {
+				if condition.Status != corev1.ConditionFalse {
+					logSuccess("%s last applied revision %s", kustomization.GetName(), kustomization.Status.LastAppliedRevision)
+				} else {
+					logFailure("%s %s", kustomization.GetName(), condition.Message)
+				}
+				isInitialized = true
+				break
+			}
+		}
+		if !isInitialized {
+			logFailure("%s is not ready", kustomization.GetName())
+		}
+	}
+	return nil
+}
diff --git a/cmd/tk/get_source.go b/cmd/tk/get_source.go
new file mode 100644
index 0000000000000000000000000000000000000000..39a5f5505697d87c9a31961d421ce596252e507c
--- /dev/null
+++ b/cmd/tk/get_source.go
@@ -0,0 +1,14 @@
+package main
+
+import (
+	"github.com/spf13/cobra"
+)
+
+var getSourceCmd = &cobra.Command{
+	Use:   "sources",
+	Short: "Get sources commands",
+}
+
+func init() {
+	getCmd.AddCommand(getSourceCmd)
+}
diff --git a/cmd/tk/get_source_git.go b/cmd/tk/get_source_git.go
new file mode 100644
index 0000000000000000000000000000000000000000..2cc9e3dd017a561307a03969eca21026580ceba8
--- /dev/null
+++ b/cmd/tk/get_source_git.go
@@ -0,0 +1,62 @@
+package main
+
+import (
+	"context"
+
+	sourcev1 "github.com/fluxcd/source-controller/api/v1alpha1"
+	"github.com/spf13/cobra"
+	corev1 "k8s.io/api/core/v1"
+	"sigs.k8s.io/controller-runtime/pkg/client"
+)
+
+var getSourceGitCmd = &cobra.Command{
+	Use:   "git",
+	Short: "Get git sources status",
+	Long: `
+The get sources command prints the status of the git resources.`,
+	RunE: getSourceGitCmdRun,
+}
+
+func init() {
+	getSourceCmd.AddCommand(getSourceGitCmd)
+}
+
+func getSourceGitCmdRun(cmd *cobra.Command, args []string) error {
+	ctx, cancel := context.WithTimeout(context.Background(), timeout)
+	defer cancel()
+
+	kubeClient, err := utils.kubeClient(kubeconfig)
+	if err != nil {
+		return err
+	}
+
+	var list sourcev1.GitRepositoryList
+	err = kubeClient.List(ctx, &list, client.InNamespace(namespace))
+	if err != nil {
+		return err
+	}
+
+	if len(list.Items) == 0 {
+		logFailure("no sources found in %s namespace", namespace)
+		return nil
+	}
+
+	for _, source := range list.Items {
+		isInitialized := false
+		for _, condition := range source.Status.Conditions {
+			if condition.Type == sourcev1.ReadyCondition {
+				if condition.Status != corev1.ConditionFalse {
+					logSuccess("%s last fetched revision %s", source.GetName(), source.Status.Artifact.Revision)
+				} else {
+					logFailure("%s %s", source.GetName(), condition.Message)
+				}
+				isInitialized = true
+				break
+			}
+		}
+		if !isInitialized {
+			logFailure("%s is not ready", source.GetName())
+		}
+	}
+	return nil
+}
diff --git a/cmd/tk/sync_kustomization.go b/cmd/tk/sync_kustomization.go
index e1def0fa044dde9bebb25919dd8668cb14be3a96..6451239ff79a95048bc69d856800c3676bd6d1de 100644
--- a/cmd/tk/sync_kustomization.go
+++ b/cmd/tk/sync_kustomization.go
@@ -94,11 +94,6 @@ func syncKsCmdRun(cmd *cobra.Command, args []string) error {
 		return err
 	}
 
-	err = kubeClient.Get(ctx, namespacedName, &kustomization)
-	if err != nil {
-		return err
-	}
-
 	if kustomization.Status.LastAppliedRevision != "" {
 		logSuccess("applied revision %s", kustomization.Status.LastAppliedRevision)
 	} else {