Managing Kite's permissions

In this article, you'll learn about the concepts that guide Kite's access to files on your computer and how to control them.


Allowed file extensions

Kite will only upload files that have a .py file extension. When JavaScript becomes available, Kite will also upload files that have a .js file extension.

Whitelisted directories

Kite will only upload files that reside inside a directory that you have explicitly whitelisted. Note that when you whitelist a directory, you are also implicitly whitelisting all the children subdirectories. You may whitelist any number of directories.


You can create a file with the name .kiteignore in any whitelisted directory. The contents of the kiteignore file specify which files in the whitelisted directory Kite should not upload to the cloud. kiteignore files use the same syntax and have the same semantics as gitignore files. You can learn about the specification here.

Note 1: The ! prefix to negate a pattern is not supported by kiteignore.
Note 2: Adding a previously uploaded file to kiteignore will effectively remove that file from the cloud.

Suppressed directories

If Kite detects that you're coding inside a directory that isn't yet whitelisted, it may ask you if you'd like to whitelist the current directory, typically through a native editor UI. If you would like Kite to stop suggesting to whitelist certain directories, you can add the individual directories to a list of “suppressed prompts”. Similar to when you whitelist a directory, when you suppress a directory, you are also implicitly suppressing all the children subdirectories.

Note 3: Suppressing a directory will not prevent the files in that directory from being uploaded if the directory has also been whitelisted. Suppressing a directory only prevents Kite from suggesting that you whitelist it while coding.

Putting it all together: An example

Let's assume we have the following directory tree structure where the root project directory is whitelisted:

├── .kiteignore
├── file.js
├── bar/
│   ├── bar.js
│   └──
├── baz/
│   ├── baz.js
│   ├──
│   └──
└── foo/
    ├── .kiteignore

The contents of the two kiteignore files are:

# project/.kiteigore
# project/foo/.kiteignore

In this case, the following files are not synced by Kite:

  • project/file.js, project/bar/bar.js, project/baz/baz.js because only files with a .py extension are uploaded
  • project/baz/ and project/foo/ because they are excluded by project/.kiteignore
  • project/foo/ because it's excluded by project/foo/.kiteignore

All other files will be uploaded by Kite to our remote servers. Note that the presence of any suppressed directories would not change what files get uploaded.

Changing your settings


The Sidebar provides a UI to add or remove directories to a whitelist. To access this, click on the gear icon on the bottom right corner of the Sidebar.

Next, click on the "Permissions" tab.

From here, you can manage your whitelisted and suppressed directories. Clicking on a whitelisted directory will also show you which files in that directory will be uploaded.


There is currently no UI to add kiteignore files. At the moment you'll have to do this manually.

Web settings

You may also log in to our website to see what files have already been uploaded to the cloud here. We provide an option here to remove all the files associated with a single computer. To do so, click on your computer and click on the link to purge all files.

Note 4: If you purge files online but still have the same directories whitelisted locally, the files you just purged will be re-uploaded if you run Kite on your computer again. You should remove your whitelist first and then purge the files online.

In-editor notifications

Our editor plugins will automatically ask if you would like to whitelist a directory if they detect that you're coding inside an un-whitelisted directory. As mentioned, you can change this behavior by suppressing directories. Please refer to the editor specific guides for more information.