diff --git a/Makefile b/Makefile
index 0b9dabe..e24b1f1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,11 @@
-PATH := node_modules/.bin:${V23_ROOT}/third_party/cout/node/bin:$(PATH)
+PATH := node_modules/.bin:${JIRI_ROOT}/third_party/cout/node/bin:$(PATH)
 
-NODE_BIN := $(V23_ROOT)/release/javascript/core/node_modules/.bin
-GOPATH := $(V23_ROOT)/release/javascript/core/go
-VDLPATH := $(V23_ROOT)/release/go/src:$(GOPATH)/src
-GOBIN := $(V23_ROOT)/release/javascript/core/go/bin
+NODE_BIN := $(JIRI_ROOT)/release/javascript/core/node_modules/.bin
+GOPATH := $(JIRI_ROOT)/release/javascript/core/go
+VDLPATH := $(JIRI_ROOT)/release/go/src:$(GOPATH)/src
+GOBIN := $(JIRI_ROOT)/release/javascript/core/go/bin
 VGO := GOPATH="$(GOPATH)" VDLPATH="$(VDLPATH)" v23 go
-GO_FILES := $(shell find go/src $(V23_ROOT)/release/go/src/v.io -name "*.go")
+GO_FILES := $(shell find go/src $(JIRI_ROOT)/release/go/src/v.io -name "*.go")
 
 NODE_MODULE_JS_FILES := $(shell find node_modules -name *.js | sed 's/ /\\ /')
 
@@ -130,15 +130,15 @@
 
 # This generates the output of the vdl files in src/gen-vdl/v.io/<package-path>
 # The command will generate all the dependent files as well.
-gen-vdl: JS_VDL_DIR := "$(V23_ROOT)/release/javascript/core/src/gen-vdl"
+gen-vdl: JS_VDL_DIR := "$(JIRI_ROOT)/release/javascript/core/src/gen-vdl"
 gen-vdl: JS_VDL_PATH_TO_CORE := ".."
 gen-vdl: gen-vdl-impl
 
 # This generates the output of the vdl files in test/vdl-out/gen-vdl/v.io/<package-path>
 # The command will generate all the dependent files as well.
-gen-vdl-test: JS_VDL_DIR := "$(V23_ROOT)/release/javascript/core/test/vdl-out"
+gen-vdl-test: JS_VDL_DIR := "$(JIRI_ROOT)/release/javascript/core/test/vdl-out"
 gen-vdl-test: EXTRA_VDL_PATHS := "javascript-test/..." "v.io/x/js.core/..."
-gen-vdl-test: VDLPATH := "$(V23_ROOT)/release/go/src:$(V23_ROOT)/release/javascript/core/test/vdl-in/src:$(V23_ROOT)/release/javascript/core/go/src"
+gen-vdl-test: VDLPATH := "$(JIRI_ROOT)/release/go/src:$(JIRI_ROOT)/release/javascript/core/test/vdl-in/src:$(JIRI_ROOT)/release/javascript/core/go/src"
 gen-vdl-test: JS_VDL_PATH_TO_CORE := "../../src"
 gen-vdl-test: gen-vdl-impl
 
@@ -146,7 +146,7 @@
 # They are placed in test/vdl/expected-gen/v.io/<package-path>.
 # This command is not normally run by the tests. It should only be run when the
 # expected vdl files need to be updated.
-gen-vdl-test-expected: JS_VDL_DIR := "$(V23_ROOT)/release/javascript/core/test/vdl/expected-gen"
+gen-vdl-test-expected: JS_VDL_DIR := "$(JIRI_ROOT)/release/javascript/core/test/vdl/expected-gen"
 gen-vdl-test-expected: JS_VDL_PATH_TO_CORE := "../../../src"
 gen-vdl-test-expected: gen-vdl-test-expected-impl
 
@@ -177,7 +177,7 @@
 	VDLPATH=$(VDLPATH) vdl generate -lang=javascript \
 			-js-relative-path-to-core=../../../$(JS_VDL_PATH_TO_CORE) \
 			-js-out-dir=$(JS_VDL_DIR) \
-			$(V23_ROOT)/release/go/src/v.io/v23/vdlroot/...
+			$(JIRI_ROOT)/release/go/src/v.io/v23/vdlroot/...
 endif
 
 test-vdl-node: test-precheck
@@ -307,11 +307,11 @@
 
 .PHONY: deploy-docs-production
 deploy-docs-production: docs
-	make -C $(V23_ROOT)/infrastructure/deploy jsdoc-production
+	make -C $(JIRI_ROOT)/infrastructure/deploy jsdoc-production
 
 .PHONY: deploy-docs-staging
 deploy-docs-staging: docs
-	make -C $(V23_ROOT)/infrastructure/deploy jsdoc-staging
+	make -C $(JIRI_ROOT)/infrastructure/deploy jsdoc-staging
 
 node_modules: package.json  check-that-npm-is-in-path
 ifndef NONPMUPDATE
diff --git a/extension/Makefile b/extension/Makefile
index e40a1e5..6dd6ac6 100644
--- a/extension/Makefile
+++ b/extension/Makefile
@@ -1,5 +1,5 @@
-PATH := node_modules/.bin:${V23_ROOT}/third_party/cout/node/bin:$(PATH)
-WSPR_ROOT := $(V23_ROOT)/release/go/src/v.io/x/ref/services/wspr
+PATH := node_modules/.bin:${JIRI_ROOT}/third_party/cout/node/bin:$(PATH)
+WSPR_ROOT := $(JIRI_ROOT)/release/go/src/v.io/x/ref/services/wspr
 SHELL := /bin/bash -e -o pipefail
 .DEFAULT_GOAL := all
 
@@ -52,7 +52,7 @@
 	mkdir -p $(dir $@)
 	cp -r nacl/main.nmf $@
 
-build/nacl/main-64.nexe: $(V23_ROOT)/release/go/src/v.io/x/ref/services/wspr/browsprd/main_nacl.go
+build/nacl/main-64.nexe: $(JIRI_ROOT)/release/go/src/v.io/x/ref/services/wspr/browsprd/main_nacl.go
 	$(call COMPILE-NACL-PLUGIN,$<,$@)
 
 build/nacl: build/nacl/main.nmf build/nacl/main-64.nexe
@@ -116,17 +116,17 @@
 build-test: build-test/html build-test/images build-test/manifest.json build-test/js build-test/nacl
 
 gen-vdl: $(WSPR_ROOT)/internal/channel/channel.vdl $(WSPR_ROOT)/internal/browspr/browspr.vdl $(WSPR_ROOT)/internal/account/account.vdl
-	VDLPATH=$(V23_ROOT)/release/go/src vdl generate \
+	VDLPATH=$(JIRI_ROOT)/release/go/src vdl generate \
 		 -lang=javascript \
-		 -js-out-dir="$(V23_ROOT)/release/javascript/core/extension/vdl" \
+		 -js-out-dir="$(JIRI_ROOT)/release/javascript/core/extension/vdl" \
 		 -js-relative-path-to-core=../../src $(dir $^)
 	# TODO(bjornick): We build the vdlroot stuff with a different set of command line options because the package
 	# path does not equal the directory path of the source file.  This is not ideal, but bjornick and toddw will
 	# discuss how to fix this later.
-	VDLPATH=$(V23_ROOT)/release/go/src vdl generate -lang=javascript \
+	VDLPATH=$(JIRI_ROOT)/release/go/src vdl generate -lang=javascript \
 	        -js-relative-path-to-core=../../../../../src \
-	        -js-out-dir="$(V23_ROOT)/release/javascript/core/extension/vdl" \
-	        $(V23_ROOT)/release/go/src/v.io/v23/vdlroot/...
+	        -js-out-dir="$(JIRI_ROOT)/release/javascript/core/extension/vdl" \
+	        $(JIRI_ROOT)/release/go/src/v.io/v23/vdlroot/...
 
 example-server: example/index.bundle.js
 	static "example" -H '{"Cache-Control": "no-cache, must-revalidate"}'
diff --git a/test/services/service.js b/test/services/service.js
index c71f651..d00d1e7 100644
--- a/test/services/service.js
+++ b/test/services/service.js
@@ -11,10 +11,10 @@
 var PassThrough = require('stream').PassThrough;
 var fs = require('fs');
 
-var V23_ROOT = process.env.V23_ROOT;
+var JIRI_ROOT = process.env.JIRI_ROOT;
 var VANADIUM_BINS = [
-  path.join(V23_ROOT, 'release/javascript/core/go/bin'),
-  path.join(V23_ROOT, 'release/javascript/core/nacl/scripts')
+  path.join(JIRI_ROOT, 'release/javascript/core/go/bin'),
+  path.join(JIRI_ROOT, 'release/javascript/core/nacl/scripts')
 ];
 var DEFAULT_FLAGS = {
   v: 3,
@@ -52,8 +52,8 @@
 
   args = args || service.args;
 
-  if (!V23_ROOT) {
-    var err = new Error('Please export $V23_ROOT to proceed');
+  if (!JIRI_ROOT) {
+    var err = new Error('Please export $JIRI_ROOT to proceed');
     return service.emit('error', err);
   }
 
diff --git a/test/ui/src/test/java/io/v/webdriver/htmlreport/HTMLReporter.java b/test/ui/src/test/java/io/v/webdriver/htmlreport/HTMLReporter.java
index 9bb9497..ef249ac 100644
--- a/test/ui/src/test/java/io/v/webdriver/htmlreport/HTMLReporter.java
+++ b/test/ui/src/test/java/io/v/webdriver/htmlreport/HTMLReporter.java
@@ -40,7 +40,7 @@
     cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
 
     // Figure out where the report.ftl file is.
-    File f = new File(System.getenv("V23_ROOT") + "/release/javascript/core/test/ui/src/test/java/io/v/webdriver/htmlreport");
+    File f = new File(System.getenv("JIRI_ROOT") + "/release/javascript/core/test/ui/src/test/java/io/v/webdriver/htmlreport");
     String path = f.getAbsolutePath();
     cfg.setDirectoryForTemplateLoading(new File(path));
 
