Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Swift Auto Completion Helper


This is a simple daemon that can read Xcode Swift projects and offers auto completion for Swift files and more over a built-in webserver. Effectively, this allows any kind of editor like Vim, Emacs, Sublime, or Atom to support Swift, Auto Completion, and Xcode projects.

It includes an example, very simple, Xcode like, editor (see SwiftCode folder) which explains how to use / embedd the actual SourceKittenDaemon.

Here's a video showing the example editor in action:

SwiftCode Editor Example


  • Get completions for current position in document
  • Get completions for edited, unsaved files (via temporary files)
  • Return files in project
  • Parse Xcode project and understand compiler arguments, targets, etc
  • Communication over http for easy integration in various editors


This app uses the fantastic SourceKitten framework without which none of this would be possible. SourceKittenDaemon is really just a small wrapper that keeps an Xcode Project indexer running and offers a nice way to query Xcode Project properties and completions via a comfortable interface.

Using It

Have a look at the file, which explains how to start and use the daemon.

Building / Installation


You'll find an installable package under the releases tab


(Coming Soon)


  1. Clone the repository
  2. Install via make install

SwiftCode Example Editor

You'll find a zip file under the releases tab

Using it in an editor

Have a look at the SwiftCode example project, or at the existing editor integrations (below). Alternatively, the communication protocol is outlined in the file in this repository.

Editor Integrations


SourceKittenDaemon is used in the company-sourcekit Emacs Swift plugin:


autocomplete-swift is a working Atom plugin offering Swift auto completion support via SourceKittenDaemon.


There's a working implementation for TextMate here.

TextMate Example

YouTube Video


This is a very simple, featureless reference implementation to see how to embed SourceKittenDaemon into an editor. It offers:

  • Reading Xcode Projects
  • Selecting / Editing / Saving files
  • Getting completions for files either when you enter a "." or when you hit the ESC key.

This is a very simple editor and no sane person should try to write code with it. It is only meant to show how to embed the daemon.


Linux support is currently in development. If you're interested in helping out, here're the steps to run it on Linux:

  1. Install docker
  2. Install the Swift Dockerfile (i.e. docker pull ibmcom/swift-ubuntu)
  3. Run make linuxtest


Byte offset vs character offset

The X-Offset header takes a byte offset as opposed to a character offset. For most characters this will make no difference. However special characters such as © are counted as two bytes is UTF8. See this issue for more details.


  • A lot of thanks go to Nathan Kot who wrote most parts of this.
  • Tomoya Kose for updating the project so it works with Homebrew again
You can’t perform that action at this time.