diff --git a/utils/examples/addmpwseal.tcl b/utils/examples/addmpwseal.tcl
index 695ced2..f666baf 100644
--- a/utils/examples/addmpwseal.tcl
+++ b/utils/examples/addmpwseal.tcl
@@ -1,3 +1,17 @@
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 drc off
 gds readonly true
 gds read ../gds/sram_1rw1r_32_256_8_sky130_lp1.gds
diff --git a/utils/examples/create-project.sh b/utils/examples/create-project.sh
index 6817239..9bcf6d5 100755
--- a/utils/examples/create-project.sh
+++ b/utils/examples/create-project.sh
@@ -1,4 +1,18 @@
 #!/bin/sh
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 cat <<'EOT' > .gitignore
 .DS_Store
 *.vcd
diff --git a/utils/examples/drc-mag.sh b/utils/examples/drc-mag.sh
index 075ce5a..8fbc697 100644
--- a/utils/examples/drc-mag.sh
+++ b/utils/examples/drc-mag.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 export MAGTYPE=mag ;
 export BASE=/home/mk/zooz/ ;
diff --git a/utils/examples/drc-maglef.sh b/utils/examples/drc-maglef.sh
index 6289f0b..7eaddf5 100644
--- a/utils/examples/drc-maglef.sh
+++ b/utils/examples/drc-maglef.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 export MAGTYPE=maglef ;
 export BASE=/home/mk/zooz/ ;
diff --git a/utils/examples/drc.sh b/utils/examples/drc.sh
index 075ce5a..8fbc697 100755
--- a/utils/examples/drc.sh
+++ b/utils/examples/drc.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 export MAGTYPE=mag ;
 export BASE=/home/mk/zooz/ ;
diff --git a/utils/examples/edit.tcl b/utils/examples/edit.tcl
index 7b30db2..ea2fc8d 100644
--- a/utils/examples/edit.tcl
+++ b/utils/examples/edit.tcl
@@ -1,3 +1,17 @@
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 drc off
 puts "Small delay..."
 set macro_mags "digital_pll.mag lvlshiftdown.mag striVe2_soc.mag striVe_clkrst.mag striVe_spi.mag"
diff --git a/utils/examples/ext-gds.sh b/utils/examples/ext-gds.sh
index b528d63..a079e76 100644
--- a/utils/examples/ext-gds.sh
+++ b/utils/examples/ext-gds.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 export MAGTYPE=maglef ;
 export BASE=/home/mk/zooz/ ;
diff --git a/utils/examples/ext-mag.sh b/utils/examples/ext-mag.sh
index cb3cfcc..67fc8f1 100644
--- a/utils/examples/ext-mag.sh
+++ b/utils/examples/ext-mag.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 export MAGTYPE=mag ;
 export BASE=/home/mk/zooz/ ;
diff --git a/utils/examples/ext.sh b/utils/examples/ext.sh
index 3a68b67..39a14e5 100644
--- a/utils/examples/ext.sh
+++ b/utils/examples/ext.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 export MAGTYPE=maglef ;
 export BASE=/home/mk/zooz/ ;
diff --git a/utils/examples/extract.tcl b/utils/examples/extract.tcl
index e043e66..a596111 100644
--- a/utils/examples/extract.tcl
+++ b/utils/examples/extract.tcl
@@ -1,3 +1,17 @@
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 lef read $::env(PDKPATH)/libs.ref/techLEF/scs8hd/scs8hd_tech.lef
 set macro_mags "openram_tc_core.mag"
 
diff --git a/utils/examples/lvs.sh b/utils/examples/lvs.sh
index 33d010f..1ff1dd1 100755
--- a/utils/examples/lvs.sh
+++ b/utils/examples/lvs.sh
@@ -1,4 +1,18 @@
 #!/bin/sh
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 /ef/apps/bin/netgen -noconsole << EOF
 readnet spice $1.spice
 readnet spice $1.sp
diff --git a/utils/examples/mag2gds.tcl b/utils/examples/mag2gds.tcl
index 372a3a3..5283852 100644
--- a/utils/examples/mag2gds.tcl
+++ b/utils/examples/mag2gds.tcl
@@ -1,3 +1,17 @@
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # assumes an /ef tree or at least a symlink
 drc off
 gds readonly true
diff --git a/utils/examples/pfg.sh b/utils/examples/pfg.sh
index 5cc71b4..dce3cf3 100755
--- a/utils/examples/pfg.sh
+++ b/utils/examples/pfg.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 export PDKPATH=/home/mk/zooz/pdks/ef-skywater-s8/EFS8A
 export MAGTYPE=mag 
diff --git a/utils/examples/run_openram_tc_1kb.sh b/utils/examples/run_openram_tc_1kb.sh
index d520971..be2a2ee 100755
--- a/utils/examples/run_openram_tc_1kb.sh
+++ b/utils/examples/run_openram_tc_1kb.sh
@@ -1,4 +1,18 @@
 #!/bin/bash
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #
 # Run netgen on striVe (top level)
 #
diff --git a/utils/examples/setup.tcl b/utils/examples/setup.tcl
index c90e3bb..d4e1021 100644
--- a/utils/examples/setup.tcl
+++ b/utils/examples/setup.tcl
@@ -1,3 +1,17 @@
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # We must flatten these because the ports are disconnected
 flatten class {-circuit1 dummy_cell_6t}
 flatten class {-circuit1 dummy_cell_1rw_1r}
diff --git a/utils/examples/wrap.tcl b/utils/examples/wrap.tcl
index a8e5593..674d989 100644
--- a/utils/examples/wrap.tcl
+++ b/utils/examples/wrap.tcl
@@ -1,3 +1,17 @@
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 drc off
 gds readonly yes
 gds rescale no
diff --git a/utils/examples/wrap2.tcl b/utils/examples/wrap2.tcl
index 5ed83f1..bb30b45 100644
--- a/utils/examples/wrap2.tcl
+++ b/utils/examples/wrap2.tcl
@@ -1,3 +1,17 @@
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 drc off
 gds readonly yes
 gds rescale no
diff --git a/utils/examples/xor.sh b/utils/examples/xor.sh
index aca6c48..eb98446 100755
--- a/utils/examples/xor.sh
+++ b/utils/examples/xor.sh
@@ -1,4 +1,18 @@
 #!/bin/sh
+# Copyright 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 : ${1?"Usage: $0 file1.gds file2.gds <top_level_module_name>"}
 : ${2?"Usage: $0 file1.gds file2.gds <top_level_module_name>"}
