Ukagaka
Ukagaka (), Nanika (), Sakura (), Nin'i-tan () or Nise-Haruna () is a catch-all term for Japanese software which shares a single format and function: to provide a pair of mascot characters for the user's computer desktop. These mascot characters can perform some useful functions such as checking e-mail or adjusting the clock of the computer, but are most popular as an aesthetic add-on, which "says" weird things.

Characters are typically cute anime girls of original design, accompanied by a small monster or pet of some sort. However, a variety of other subjects exist on the sidelines, from video game characters to 2channel memes to humorous depictions of Hitler.

Surface, shell, ghost
Most importantly, the characters "talk" (typically in Japanese). What they "say" is shown in a speech bubble. Also, they have variable facial expressions (called "surfaces"). For example, they might say "It's 3. Are you still awake?" at 3:00. Or, when the user is rebooting, they might say "Oh, are you rebooting? Okay, Seeya."
But usually, the two chat to each other, and the user can read their conversations (in the balloons).

The contents of their conversations are usually hilarious, ironic, silly, or possibly erotic.
Those lines (called "fake-AI talk") are program generated, and the personality of the character (called "ghost", in its narrow sense) depends on this conversation-generating program (called "shiori").
The character's appearance is called shell, which is implemented as several surfaces.

A set of the "main" girl and her companion is vaguely called a ghost ("ghost" in its broad sense).
As of August 8, 2006, 1617 kinds of ghosts are listed on the Ghost Center. Usually, a different ghost has a different shell.
In order for the ghost not to repeat the same conversations (which would be boring),
the user can update the data via the Internet.
Additionally, if the user permits, they can talk according to a remote script
(which is written in the language called "Sakura Script").
In that case, it is also possible that two or more users chat to each other using the Ukagaka system.

The protocol it uses to communicate with other (local or remote) programs is called SSTP (Sakura Script Transfer Protocol). Ports 7743 and 9801 are officially assigned by IANA for SSTP. The port 7743 is not actually used for this protocol. The original Ukagaka listens to port 9801 while SSP (see below) uses the port 9821 by default.

Most ghosts are highly otaku-oriented; hence, even if the user is a native Japanese speaker, he or she probably does not fully understand what they are talking about, unless they are an otaku to a significant degree. Not always, but in many cases, they are chatting to each other assuming the user (that is, the reader) is very familiar with the games released by Leaf and by Key.
Also note that, in many cases, Unyū does not speak standard Japanese, but speaks the Osaka dialect (as often as not it is a fake Osaka dialect made up by a non-Osaka dialect speaker).

Ukagaka is, in a narrow sense, a platform on which any standard-compliant ghost runs.
There are a few Ukagaka-compatible platforms, such as SSP (Sakura Script Player) and CROW.
Many users prefer SSP to the original Ukagaka, whose development has been stalled.

Ukagaka, or its compatible platform, usually comes with its default ghost.
It is possible and usual to have more than one ghost on the same platform, when the ghosts are switchable (that is, the girl the user selected from the menu appears on the user's desktop).
An additional ghost, including its shell, is usually provided as a single  (Nanika Archive) file, which the user can easily install by dragging and dropping onto the running shell.

Shiori
Basically, each ghost has its own personality, talking differently about different topics.
This means that each ghost has its own shiori (a conversation-generating module).
However, it is not easy to implement a shiori from scratch.

Usually, middleware is used to make it easy to create a new ghost.
KAWARI is open-source software used frequently for this purpose.

Internationalization
Although it is not well documented, it is easy to create a ghost that speaks a language other than Japanese.

Also, it is possible to change the menu language of SSP into English, but since SSP is just a platform,
changing the menu language does not change the language the ghost speaks.

See also
Nanika
Kisekae Set System

External links
In Japanese:
Usada Sakura, an original Ukagaka program for Windows
SSP, a popular Ukagaka program for Windows
Nanika Ghost Center, a database of 'ghosts'
Niseringo, an Ukagaka program for Mac OS X
ninix-aya, a Ukagaka program for UNIX
GHOST TOWN, a repository of ghost characters

Desktop environments