diff --git a/.gitignore b/.gitignore
index b6e4761..d3fe895 100644
--- a/.gitignore
+++ b/.gitignore
@@ -127,3 +127,4 @@ dmypy.json
 
 # Pyre type checker
 .pyre/
+jupyter_pyfilesystem/_version.py*
diff --git a/jupyter_pyfilesystem/__init__.py b/jupyter_pyfilesystem/__init__.py
index bbd22c9..b8d5075 100644
--- a/jupyter_pyfilesystem/__init__.py
+++ b/jupyter_pyfilesystem/__init__.py
@@ -1,9 +1,11 @@
+from ._version import version as __version__
 from .contents import (
     FsContentsManager,
     FsCheckpoints,
 )
 
 __all__ = [
+    '__version__',
     'FsContentsManager',
     'FsCheckpoints',
 ]
diff --git a/setup.py b/setup.py
index 2218c6e..3d67391 100644
--- a/setup.py
+++ b/setup.py
@@ -2,19 +2,24 @@
 
 setuptools.setup(
     name='jupyter-pyfilesystem',
-    version='0.0.5',
     url='https://github.com/manics/jupyter-pyfilesystem',
     author='Simon Li',
     license='MIT',
     description='Jupyter Notebook PyFilesystem Contents Manager',
     long_description=open('README.md').read(),
     long_description_content_type='text/markdown',
+    use_scm_version={
+        'write_to': 'jupyter_pyfilesystem/_version.py',
+    },
     packages=setuptools.find_packages(),
+    setup_requires=[
+        'setuptools_scm',
+    ],
     install_requires=[
         'notebook',
         'fs>=2,<3',
     ],
-    tests_requires=[
+    tests_require=[
         'pytest',
     ],
     python_requires='>=3.5',