fly me to the moon


Welcome to Kawari no Kawari! This is a collection of guides and general Ghost concepts that will aid you in the process of creating a Ghost. It specializes in teaching Kawari, a SHIORI coding language not yet covered by the English community at time of writing.

Kawari no Kawari (KnK) is here as a standalone resource. My Kawari sample Ghost, CHIPS, is another resource for learning Kawari. KnK and CHIPS pair well together, and CHIPS may be used as an example Ghost in KnK. This is for mainly practical purposes, as I'm able to control both the Ghost resource and the example Ghost used.

What this walkthrough details is various aspects of ukagaka/Ghosts and ukagaka/Ghost creation. This includes the appearance and scripting, and the main coding language, which is Kawari.

Kawari was chosen due to the unfortunate lack of English resources on Kawari, and for being more beginner friendly in some aspects. It has seen very little use outside of the Japanese community. But, it has a unique style particularly suited to conversational or writing heavy Ghosts.

The most popular coding language for Ghosts in English is YAYA. This is not without reason, YAYA is a very good language for English ghosts, in my opinion! However it's sorely lacking in its appeal to non-coders, and there was a niche to be filled by Kawari.

If you find yourself not meshing well with Kawari's style of coding, I do recommend trying the GT Template instead. They are written in YAYA and may appeal to you more.


Ukagaka, also known as Ghosts, are desktop agents designed primarily to entertain the user. Originating in Japanese otaku culture, many traditional Ghosts are in an anime art style. The most common configuration is two characters who talk to each other, and sometimes address the user. They may also perform functions like emptying the user's trash, or opening their email client.

Ukagaka enthusiasts, however, enjoy a variety of ukagaka. Ukagaka can have one character, two characters, or three, or many more. Some even don't have an explicit 'character', but are rather an object or other inanimate thing. Ukagaka are much more like a medium than a specific program. I like to think of them as multi-media projects. It makes understanding their customizability easier.

Ghosts are made using primarily three skills. Art, script writing, and coding. One doesn't need to be proficient in all of these to create a Ghost. These skills are applied to create the base elements of a Ghost. Their shell, and their SHIORI. Ghosts also use speech bubbles to speak with, those can be customized too.


The art and its code make up the Ghost's shell. Shell coding is done in surfaces.txt, which allows a ghost to animate, have accessories, and generally function properly with SakuraScript. Ghosts can have multiple shells. The naming convention is itself a pun, referencing 'Ghost in the Shell'.

Commonly, in the Japanese community, Ghosts will use free art assets intended specifically for use in Ghosts. These assets are called 'freeshells', and some even come with their own coding, making it very easy to use. The English community also has a few freeshells. However, they're not nearly as commonly used here as in the Japanese community.


The script and its code, together, are called the SHIORI. They, in tandem, allow Ghosts to respond to information and events given to them by a baseware program. The SHIORI of a Ghost can be thought of as their personality or brain. It's what makes Ghosts unique, and is the 'pseudo-ai' part of a Ghost. There used to be support for having multiple SHIORI per Ghost, but these days Ghosts only have one.

TIP: Different personalities can still be achieved using one SHIORI. But this is done through different “modes” inside one SHIORI, instead of swapping out the whole SHIORI.

Templates and middleware, such as the GT Template and Simplicity, or OpenKEEPS and CHIPS, are all are designed to make the SHIORI writing easier. They come with pre-written code which can act as a framework, or be very detailed. The main difference between a template and middleware is their approach towards coding.

The template style of Ghost is based more heavily on how a coder approaches Ghosts, directly writing the dialogue into the Ghost's responses to events. (e.g. GT Template, Simplicity)

Middleware introduces a layer of event handler code which interprets dialogue files, separating the code and the dialogue for user readability. (e.g. OpenKEEPS, CHIPS)

Both have their strengths and weaknesses. Middleware is fast to write dialogue for and is simple to read, but it is inflexible and it can be more burdensome to write additional code for compared to the template style. Template style Ghosts can be more overwhelming to look at, especially to non-coders, but they are easily customizeable and are coded the same way as any other Ghost not using middleware.

Choosing which kind to use is entirely up to the user, and what they are comfortable with.


Ghosts display their text and dialogue in a speech balloon. 'Speech balloon' is shortened to just 'balloon' in the context of Ghosts. Comics commonly use these kinds of balloons, and they serve the same purpose in comics as they do for Ghosts.

Balloons are a separate element from the Ghost itself. Some Ghosts come bundled a themed balloon, but once a balloon is installed, it can be used with any Ghost. It's not necessary to create a new balloon for your Ghost, but it may be fun to do so.

Balloons have templates in the English community to help people create balloons. A plugin called 'Balloon Maker' is popular in the Japanese community, too. However, they're easy to make in comparison to Ghosts. So, there's not as many resources on making Balloons, as there's less of a need for them.


To install an ukagaka, you will need a baseware such as SSP. SSP is the best maintained and most convenient baseware, however others such as MATERIA or CROW exist. SSP only works out of the box on Windows computers. The programs for Linux and Mac are not always functional with certain Ghosts, and not even always functional on their intended OS. With that in mind, I recommend SSP the most, as it tends to be the most stable. Even when being run through WINE, for those on Linux and Mac.

To install SSP, visit and download the latest release. Double click SSP to extract it to a folder, or manually extract it in a folder of its own. SSP is a portable program, so its folder can be freely moved within your PC and be installed anywhere. My only suggestion is to keep it outside of the 'Program Files' folders on Windows PCs, as SSP sometimes has authorization issues there.

If you learn better visually, I've also made a video specifically about installing SSP and CHIPS.

Ghosts can be downloaded from many sites on the web. Most Ghosts are distributed on personal websites, such as this one! However, some websites aggregate Ghosts and their downloads. For the English community, the Ukagaka Dream Team catalogues many Ghosts and information on them.

How people play with Ghosts and interact with them has very little direction! All Ghosts are unique, and have different methods of interaction. Meaning, there's little expectation in expected Ukagaka behavior, aside from acting as a desktop agent. So, use Ukagaka how you'd like.


The process of making an ukagaka looks different for everyone. However, you'll most likely end up making or finding a shell for your Ghost, and writing dialogue for your Ghost. Which of these comes first is entirely up to you. I know a lot of people I talk to want to replace any placeholder images right away when creating a new Ghost, but I wouldn't be surprised if others had opposite priorities.

If you don't have a strong idea for your Ghost, it can be wise to take some time conceptualizing them, and thinking about how to adapt them to the Ghost medium. What their purpose will be, and what makes them unique.

You can start completely from scratch when it comes to creating a Ghost, however it's quite tedious. A template Ghost makes the set-up process nicely streamlined. Depending on your needs, you can download different styles of template Ghosts.

To actually go about editing your Ghost's files, you'll want a text editor to edit your files with. Notepad, the default Windows text editor, will do the job, but it's very basic. Visual Studio Code, Microsoft's code editor, is my editor of choice as it has syntax highlighting for Kawari. That highlights important words and symbols to make it easier to interpret. Notepad++ is another code editor and is open source. It's very lightweight and also has highlighting for many languages. (Sadly, not Kawari.)

For shells, you can use any image editor or illustration program you'd like. The images themselves can be any '.png' file. This filetype is preferred because it provides its own alpha channel, which informs how see-through an image is. While there is no hard size limit to each image, past the higher thousands of pixels SSP will start to crash.


If you're still looking to make an Ukagaka, these guides provide resources to multiple aspects of Ghosts and their creation. Start wherever you're most interested in a given section, although be aware each section is intended to be read from top to bottom. The knowledge builds upon itself, which is inevitable.

I also suggest downloading the latest release of CHIPS for reference in future guides, as it's used as an example.


Writing in Kawari
Writing with SakuraScript
Shell Overview
SHIORI Event Overview Basic Coding
Advanced Coding


walkthrough by Okuajub
design by almost sweet - resources