diff --git a/aos/configuration.h b/aos/configuration.h
index 5d4a79b..f2cf499 100644
--- a/aos/configuration.h
+++ b/aos/configuration.h
@@ -37,16 +37,17 @@
 //
 // If the application name is empty, it is ignored.  Maps are processed in
 // reverse order, and application specific first.
-const Channel *GetChannel(
-    const Configuration *config, const std::string_view name,
-    const std::string_view type,
-    const std::string_view application_name);
-inline const Channel *GetChannel(
-    const Flatbuffer<Configuration> &config,
-    const std::string_view name,
-    const std::string_view type,
-    const std::string_view application_name) {
-  return GetChannel(&config.message(), name, type, application_name);
+const Channel *GetChannel(const Configuration *config,
+                          const std::string_view name,
+                          const std::string_view type,
+                          const std::string_view application_name,
+                          const Node *node);
+inline const Channel *GetChannel(const Flatbuffer<Configuration> &config,
+                                 const std::string_view name,
+                                 const std::string_view type,
+                                 const std::string_view application_name,
+                                 const Node *node) {
+  return GetChannel(&config.message(), name, type, application_name, node);
 }
 
 // Returns the Node out of the config with the matching name, or nullptr if it
@@ -64,6 +65,9 @@
 // provided node.
 bool ChannelIsReadableOnNode(const Channel *channel, const Node *node);
 
+// Prints a channel to json, but without the schema.
+std::string CleanedChannelToString(const Channel *channel);
+
 // TODO(austin): GetSchema<T>(const Flatbuffer<Configuration> &config);
 
 // Returns the "root directory" for this run. Under linux, this is the
