diff --git a/browser/actions/add-pipe-viewer.js b/browser/actions/add-pipe-viewer.js
index 71b637c..426ee10 100644
--- a/browser/actions/add-pipe-viewer.js
+++ b/browser/actions/add-pipe-viewer.js
@@ -45,7 +45,7 @@
 /*
  * Handles the addPipeViewer action.
  * @param {string} name Name of the Pipe Viewer that is requested to play the stream.
- * @param {Veyron.Stream} stream Stream of bytes from the p2b client.
+ * @param {Vanadium.Stream} stream Stream of bytes from the p2b client.
  *
  * @private
  */
diff --git a/browser/actions/navigate-home-page.js b/browser/actions/navigate-home-page.js
index 9128b5b..6447e65 100644
--- a/browser/actions/navigate-home-page.js
+++ b/browser/actions/navigate-home-page.js
@@ -102,7 +102,7 @@
  * pipeRequestHandler is called by the p2b service whenever a new request comes in.
  * We simply delegate to the addPipeViewer action.
  * @param {string} name Name of the Pipe Viewer that is requested to play the stream.
- * @param {Veyron.Stream} stream Stream of bytes from the p2b client.
+ * @param {Vanadium.Stream} stream Stream of bytes from the p2b client.
  *
  * @private
  */
diff --git a/browser/actions/redirect-pipe.js b/browser/actions/redirect-pipe.js
index 1666ef9..a41c578 100644
--- a/browser/actions/redirect-pipe.js
+++ b/browser/actions/redirect-pipe.js
@@ -3,8 +3,8 @@
 // license that can be found in the LICENSE file.
 
 /*
- * Redirects a stream to another veyron name. It prompts the user to pick
- * a Veyron name before redirecting and allows the user to chose between
+ * Redirects a stream to another Vanadium name. It prompts the user to pick
+ * a Vanadium name before redirecting and allows the user to chose between
  * redirecting all the data or just new incoming data.
  * @fileoverview
  */
@@ -63,7 +63,7 @@
 
   // also get the list of all existing P2B names in the namespace and supply it to the dialog
   getAllPublishedP2BNames().then((allNames) => {
-    // append current plugin name to the veyron names for better UX
+    // append current plugin name to the Vanadium names for better UX
     dialog.existingNames = allNames.map((n) => {
       return n + '/' + currentPluginName;
     });
diff --git a/browser/app.html b/browser/app.html
index f3cac9b..3484ede 100644
--- a/browser/app.html
+++ b/browser/app.html
@@ -5,7 +5,7 @@
   <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
   <meta name="mobile-web-app-capable" content="yes">
   <meta name="apple-mobile-web-app-capable" content="yes">
-  <meta name="description" content="Pipe To Browser (p2b) is a utility built with veyron technology that allows piping of stdout and std from console into local or remote browser windows. Different plugins exist to format the incoming data and display them in an appropriate and interactive format.">
+  <meta name="description" content="Pipe To Browser (p2b) is a utility built with Vanadium technology that allows piping of stdout and std from console into local or remote browser windows. Different plugins exist to format the incoming data and display them in an appropriate and interactive format.">
   <title>Pipe To Browser - because life is too short to stare at unformatted stdout text, and is hard enough already not to have a spell-checker for stdin</title>
 
   <script src="third-party/traceur-runtime.js"></script>
diff --git a/browser/pipe-viewers/builtin/vlog/component.html b/browser/pipe-viewers/builtin/vlog/component.html
index 38b250f..fc7a18d 100644
--- a/browser/pipe-viewers/builtin/vlog/component.html
+++ b/browser/pipe-viewers/builtin/vlog/component.html
@@ -7,7 +7,7 @@
     <link rel="stylesheet" href="../../../libs/css/common-style.css">
     <link rel="stylesheet" href="component.css">
 
-    <ag-data-grid id="grid" defaultSortKey="date" dataSource="{{ dataSource }}" summary="Data Grid displaying veyron log items in a tabular format with filters and search options.">
+    <ag-data-grid id="grid" defaultSortKey="date" dataSource="{{ dataSource }}" summary="Data Grid displaying Vanadium log items in a tabular format with filters and search options.">
 
       <!-- Search -->
       <ag-data-grid-search label="Search Logs"></ag-data-grid-search>
diff --git a/browser/pipe-viewers/builtin/vlog/filterer.js b/browser/pipe-viewers/builtin/vlog/filterer.js
index dcdf05f..00f1c32 100644
--- a/browser/pipe-viewers/builtin/vlog/filterer.js
+++ b/browser/pipe-viewers/builtin/vlog/filterer.js
@@ -4,7 +4,7 @@
 
 /*
  * Returns whether the given vLogItem matches the map of filters.
- * @param {Object} item A single veyron log item as defined by parser.item
+ * @param {Object} item A single Vanadium log item as defined by parser.item
  * @param {map} filters Map of keys to selected filter values as defined
  * when constructing the filters in the grid components.
  * e.g. filters:{'date':'all', 'levels':['info','warning']}
@@ -29,7 +29,7 @@
 
 /*
  * Returns whether the given vLogItem matches a single filter
- * @param {Object} item A single veyron log item as defined by parser.item
+ * @param {Object} item A single Vanadium log item as defined by parser.item
  * @param {string} key filter key e.g. 'date'
  * @param {string} value filter value e.g. 'all'
  * @return {boolean} Whether the item satisfies then the given filter key value pair
@@ -49,7 +49,7 @@
 
 /*
  * Returns whether item's date satisfies the date filter
- * @param {Object} item A single veyron log item as defined by parser.item
+ * @param {Object} item A single Vanadium log item as defined by parser.item
  * @param {string} since One of 'all', '1' or '24'. for Anytime, past one hour, past 24 hours.
  * @return {boolean} whether item's date satisfies the date filter
  * @private
@@ -67,7 +67,7 @@
 
 /*
  * Returns whether item's level is one of the given values
- * @param {Object} item A single veyron log item as defined by parser.item
+ * @param {Object} item A single Vanadium log item as defined by parser.item
  * @param {Array<string>} levels Array of level values e.g. ['info','warning']
  * @return {boolean} whether item's level is one of the given values
  * @private
diff --git a/browser/pipe-viewers/builtin/vlog/parser.js b/browser/pipe-viewers/builtin/vlog/parser.js
index a1697ec..3bfef72 100644
--- a/browser/pipe-viewers/builtin/vlog/parser.js
+++ b/browser/pipe-viewers/builtin/vlog/parser.js
@@ -3,12 +3,12 @@
 // license that can be found in the LICENSE file.
 
 /*
- * Parse utilities for veyron logs
+ * Parse utilities for Vanadium logs
  * @fileoverview
  */
 
 /*
- * Parses a single line of text produced by veyron logger
+ * Parses a single line of text produced by Vanadium logger
  * into an structured object representing it.
  * Log lines have this form:
  * Lmmdd hh:mm:ss.uuuuuu threadid file:line] msg...
@@ -21,7 +21,7 @@
  *  file             The file name
  *  line             The line number
  *  msg              The user-supplied message
- * @param {string} vlogLine A single line of veyron log
+ * @param {string} vlogLine A single line of Vanadium log
  * @return {parser.item} A parsed object containing log level, date, file,
  * line number, thread id and message.
  */
@@ -71,7 +71,7 @@
 }
 
 /*
- * A structure representing a veyron log item
+ * A structure representing a Vanadium log item
  * @param {string} level, one of info, warning, error, fatal
  * @param {date} date, The date and time of the log item
  * @param {integer} threadId The thread ID as returned by GetTID()
diff --git a/browser/pipe-viewers/builtin/vlog/plugin.js b/browser/pipe-viewers/builtin/vlog/plugin.js
index bd72b8e..26b437b 100644
--- a/browser/pipe-viewers/builtin/vlog/plugin.js
+++ b/browser/pipe-viewers/builtin/vlog/plugin.js
@@ -3,10 +3,10 @@
 // license that can be found in the LICENSE file.
 
 /*
- * vlog is a Pipe Viewer that displays veyron logs in a graphical grid.
- * Please note that Veyron writes logs to stderr stream, in *nix systems 2>&1
+ * vlog is a Pipe Viewer that displays Vanadium logs in a graphical grid.
+ * Please note that Vanadium writes logs to stderr stream, in *nix systems 2>&1
  * can be used to redirect stderr to stdout which can be then piped to P2B.
- * @tutorial myVeyronServerd -v=3 2>&1 | p2b users/jane@google.com/chrome/p2b/[name]/vlog
+ * @tutorial myVanadiumServerd -v=3 2>&1 | p2b users/jane@google.com/chrome/p2b/[name]/vlog
  * @tutorial cat logfile.txt | p2b users/jane@google.com/chrome/p2b/[name]/vlog
  * @fileoverview
  */
diff --git a/browser/pipe-viewers/pipe-viewer-delegation.js b/browser/pipe-viewers/pipe-viewer-delegation.js
index 4f32b34..550f285 100644
--- a/browser/pipe-viewers/pipe-viewer-delegation.js
+++ b/browser/pipe-viewers/pipe-viewer-delegation.js
@@ -10,7 +10,7 @@
  * Useful for cases where a plugin wants to simply do some transforms on the stream
  * and then have it be played by an existing plugin.
  * @param {string} pipeViewerName of the pipe-viewer to redirect to.
- * @param {Veyron.Stream} stream Stream of data to be redirected.
+ * @param {Vanadium.Stream} stream Stream of data to be redirected.
  * @return {Promise<View>} A promise of an View from the target pipe viewer, which can
  * be returned from the play() method of the caller plugin.
  */
diff --git a/browser/pipe-viewers/pipe-viewer.js b/browser/pipe-viewers/pipe-viewer.js
index ac8dbcb..6ba4f35 100644
--- a/browser/pipe-viewers/pipe-viewer.js
+++ b/browser/pipe-viewers/pipe-viewer.js
@@ -26,7 +26,7 @@
   /*
    * play() function is called by the p2b framework when a pipe request for the
    * this specific pipe viewer comes in.
-   * @param {Veyron.Stream} stream Stream of data to be displayed.
+   * @param {Vanadium.Stream} stream Stream of data to be displayed.
    * @return {Promise<View>|{View}} a View or a promise of an
    * View that p2b can display.
    */
diff --git a/browser/services/pipe-to-browser-client.js b/browser/services/pipe-to-browser-client.js
index 0dd4b1a..d027943 100644
--- a/browser/services/pipe-to-browser-client.js
+++ b/browser/services/pipe-to-browser-client.js
@@ -14,7 +14,7 @@
 /*
  * Pipes a stream of data to the P2B service identified
  * by the given vanadium name.
- * @param {string} name Veyron name of the destination service
+ * @param {string} name Vanadium name of the destination service
  * @param {Stream} Stream of data to pipe to it.
  * @return {Promise} Promise indicating if piping was successful or not
  */
diff --git a/browser/services/pipe-to-browser-server.js b/browser/services/pipe-to-browser-server.js
index 24679d8..51d1928 100644
--- a/browser/services/pipe-to-browser-server.js
+++ b/browser/services/pipe-to-browser-server.js
@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 
 /*
- * Implements and publishes a Veyron service which accepts streaming RPC
+ * Implements and publishes a Vanadium service which accepts streaming RPC
  * requests and delegates the stream back to the provided pipeRequestHandler.
  * It also exposes the state of the service.
  * @fileoverview
@@ -55,7 +55,7 @@
   log.debug('publishing under name:', name);
 
   /*
-   * Veyron pipe to browser service implementation.
+   * Vanadium pipe to browser service implementation.
    * Implements the p2b VDL.
    */
   class Service extends vdl.Viewer {
diff --git a/browser/views/help/component.html b/browser/views/help/component.html
index b6183fc..bbf7e65 100644
--- a/browser/views/help/component.html
+++ b/browser/views/help/component.html
@@ -29,11 +29,11 @@
   <p>Ever wanted to sort, search and filter result of <span class="mono">git status</span> to make sense of it all? <span class="name">git/status</span> can do that. You need to use <span class="mono">git status --short</span> though, so we can parse it.</p>
   <pre class="code">git status --short | p2b {{publishedName}}/git/status</pre>
 
-  <h4>Veyron Log Viewer</h4>
-  <span class="name">vlog</span> displays Veyron logs in a DataGrid and supports sorting, searching, paging, pausing and filtering based on time and log level. DataGrid is responsive and may hide columns on smaller screens but you can always see all the fields by using the more info icon.</p>
+  <h4>Vanadium Log Viewer</h4>
+  <span class="name">vlog</span> displays Vanadium logs in a DataGrid and supports sorting, searching, paging, pausing and filtering based on time and log level. DataGrid is responsive and may hide columns on smaller screens but you can always see all the fields by using the more info icon.</p>
   <pre class="code">cat vlogfile.txt | p2b {{publishedName}}/vlog</pre>
-  <p>If you want to pipe logs from a Veyron service directly, you need to pipe stderr or strout first using <span class="mono">2&gt;&amp;1</span></p>
-  <pre class="code">myVeyronServerd -v=3 2&gt;&amp;1 | p2b {{publishedName}}/vlog</pre>
+  <p>If you want to pipe logs from a Vanadium service directly, you need to pipe stderr or strout first using <span class="mono">2&gt;&amp;1</span></p>
+  <pre class="code">myVanadiumServerd -v=3 2&gt;&amp;1 | p2b {{publishedName}}/vlog</pre>
 
   <h4>Panic Console</h4>
   <span class="name">console/panic</span> renders plaintext as <span class="name">console</span> until it detects a Go panic. Go panics crash every running goroutine, leading to a spew of stderr logs. This plugin groups goroutine crash logs into show/hide blocks. The plugin stops scrolling at the first goroutine block, which caused the panic. To further assist the debugging process, lines can be highlighted by keyword using an input filter. Don't forget to pipe both stdout and stderr to this plugin!
diff --git a/go/src/v.io/x/p2b/vdl/p2b.vdl b/go/src/v.io/x/p2b/vdl/p2b.vdl
index 49168fe..aabc787 100644
--- a/go/src/v.io/x/p2b/vdl/p2b.vdl
+++ b/go/src/v.io/x/p2b/vdl/p2b.vdl
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Package vdl is an example of a veyron service for
+// Package vdl is an example of a Vanadium service for
 // streaming data from a pipe to a browser, which can visualize this
 // data.
 package vdl
diff --git a/go/src/v.io/x/p2b/vdl/p2b.vdl.go b/go/src/v.io/x/p2b/vdl/p2b.vdl.go
index 54894b3..2765844 100644
--- a/go/src/v.io/x/p2b/vdl/p2b.vdl.go
+++ b/go/src/v.io/x/p2b/vdl/p2b.vdl.go
@@ -5,7 +5,7 @@
 // This file was auto-generated by the vanadium vdl tool.
 // Source: p2b.vdl
 
-// Package vdl is an example of a veyron service for
+// Package vdl is an example of a Vanadium service for
 // streaming data from a pipe to a browser, which can visualize this
 // data.
 package vdl
