--- a/mathlibtools/lib.py
+++ b/mathlibtools/lib.py
@@ -21,7 +21,8 @@
 
 import requests
 from tqdm import tqdm # type: ignore
-import toml
+import tomli
+import tomli_w
 import yaml
 from git import (Repo, Commit, InvalidGitRepositoryError,  # type: ignore
                  GitCommandError, BadName, RemoteReference) # type: ignore
@@ -84,7 +85,7 @@ def mathlib_lean_version() -> VersionTuple:
     """Return the latest Lean release supported by mathlib"""
     resp = requests.get("https://raw.githubusercontent.com/leanprover-community/mathlib/master/leanpkg.toml")
     assert resp.status_code == 200
-    conf = toml.loads(resp.text)
+    conf = tomli.loads(resp.text)
     return parse_version(conf['package']['lean_version'])
 
 def set_download_url(url: str = AZURE_URL) -> None:
@@ -441,7 +442,8 @@ def from_path(cls, path: Path, cache_url: str = '',
             except ValueError:
                 rev = ''
         directory = find_root(path)
-        config = toml.load(directory/'leanpkg.toml')
+        with (directory/'leanpkg.toml').open('rb') as pkgtoml:
+            config = tomli.load(pkgtoml)
 
         return cls(repo, is_dirty, rev, directory,
                    config['package'], config['dependencies'],
@@ -456,7 +458,8 @@ def user_wide(cls, cache_url: str = '',
         version of Lean supported by mathlib."""
         directory = Path.home()/'.lean'
         try:
-            config = toml.load(directory/'leanpkg.toml')
+            with (directory/'leanpkg.toml').open('rb') as pkgtoml:
+                config = tomli.load(pkgtoml)
         except FileNotFoundError:
             directory.mkdir(exist_ok=True)
             version = mathlib_lean_version()
@@ -469,8 +472,8 @@ def user_wide(cls, cache_url: str = '',
             pkg = { 'name': '_user_local_packages',
                     'version': '1',
                     'lean_version': version_str }
-            with (directory/'leanpkg.toml').open('w') as pkgtoml:
-                toml.dump({'package': pkg}, pkgtoml)
+            with (directory/'leanpkg.toml').open('wb') as pkgtoml:
+                tomli_w.dump({'package': pkg}, pkgtoml)
             config = { 'package': pkg, 'dependencies': dict() }
 
         return cls(None, False, '', directory,
@@ -534,7 +537,8 @@ def mathlib_repo(self) -> Repo:
 
     def read_config(self) -> None:
         try:
-            config = toml.load(self.directory/'leanpkg.toml')
+            with (self.directory/'leanpkg.toml').open('rb') as pkgtoml:
+                config = tomli.load(pkgtoml)
         except FileNotFoundError:
             raise InvalidLeanProject('Missing leanpkg.toml')
 
@@ -551,7 +555,7 @@ def write_config(self) -> None:
         # for dependencies.
         with (self.directory/'leanpkg.toml').open('w') as cfg:
             cfg.write('[package]\n')
-            cfg.write(toml.dumps(self.pkg_config))
+            cfg.write(tomli_w.dumps(self.pkg_config))
             cfg.write('\n[dependencies]\n')
             for dep, val in self.deps.items():
                 nval = str(val).replace("'git':", 'git =').replace(

--- a/setup.py
+++ b/setup.py
@@ -28,7 +28,7 @@
         "License :: OSI Approved :: Apache Software License",
         "Operating System :: OS Independent" ],
     python_requires='>=3.6',
-    install_requires=['toml>=0.10.0', 'PyGithub', 'certifi', 'gitpython>=2.1.11', 'requests',
+    install_requires=['tomli', 'tomli-w', 'PyGithub', 'certifi', 'gitpython>=2.1.11', 'requests',
                       'Click', 'tqdm', 'networkx', 'pydot',
                       'PyYAML>=3.13', 'atomicwrites', "dataclasses; python_version=='3.6'"]
 )

