diff --git a/include/grenade/vx/backend/connection.h b/include/grenade/vx/backend/connection.h
index 2c08914a31b7ea82ffec0c61b69f7cf89b16be0c..9829d9d77a3a526dc36a754db333e21fd2a52ef3 100644
--- a/include/grenade/vx/backend/connection.h
+++ b/include/grenade/vx/backend/connection.h
@@ -40,6 +40,8 @@ struct Connection
 	std::string get_unique_identifier(std::optional<std::string> const& hwdb_path) const
 	    SYMBOL_VISIBLE;
 
+	std::string get_bitfile_info() const SYMBOL_VISIBLE;
+
 	hxcomm::vx::ConnectionVariant&& release() SYMBOL_VISIBLE;
 
 	stadls::vx::v3::ReinitStackEntry create_reinit_stack_entry() SYMBOL_VISIBLE;
diff --git a/src/grenade/vx/backend/connection.cpp b/src/grenade/vx/backend/connection.cpp
index 1f8a6e82f8807931ee6f2208aaf0c234c43ef079..96f444af0da2c791d21bd71c53a6054419611500 100644
--- a/src/grenade/vx/backend/connection.cpp
+++ b/src/grenade/vx/backend/connection.cpp
@@ -92,6 +92,11 @@ std::string Connection::get_unique_identifier(std::optional<std::string> const&
 	    [hwdb_path](auto const& c) { return c.get_unique_identifier(hwdb_path); }, m_connection);
 }
 
+std::string Connection::get_bitfile_info() const
+{
+	return std::visit([](auto const& c) { return c.get_bitfile_info(); }, m_connection);
+}
+
 hxcomm::vx::ConnectionVariant&& Connection::release()
 {
 	return std::move(m_connection);