diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index daf15bf45b0867c8afbb9f2e141c7c4a3517d86e..1f4a00ce590f80b278448daae271f3524e97cfef 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -183,6 +183,10 @@ If PATH is relative, it is considered to be relative to
 
 ;;; Receivable lists of packages, lint checkers, etc.
 
+(guix-memoized-defun guix-graph-type-names ()
+  "Return a list of names of available graph node types."
+  (guix-eval-read (guix-make-guile-expression 'graph-type-names)))
+
 (guix-memoized-defun guix-lint-checker-names ()
   "Return a list of names of available lint checkers."
   (guix-eval-read (guix-make-guile-expression 'lint-checker-names)))
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index 2c5b0baa659521d46bb753a105dddf7c62a866b2..191aa8d5cf48343306fc743fb10a6e4bc1b017d6 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -57,6 +57,7 @@
  (guix licenses)
  (guix utils)
  (guix ui)
+ (guix scripts graph)
  (guix scripts lint)
  (guix scripts package)
  (guix scripts pull)
@@ -932,6 +933,10 @@ (define* (package-source-build-derivation package-id #:key dry-run?
 
 ;;; Lists of packages, lint checkers, etc.
 
+(define (graph-type-names)
+  "Return a list of names of available graph node types."
+  (map node-type-name %node-types))
+
 (define (lint-checker-names)
   "Return a list of names of available lint checkers."
   (map (lambda (checker)