This is an extension to the built-in ComputerCraft OS. Although the title says "CraftOS Cakejoke Edition", it can easily be installed on turtles as well and it also has some APIs and programs specifically designed for turtles. Here's an overview of what's currently available (some more stuff is planned):

APIs:
SpoilerThis contains a list of the (non-local) functions available in the APIs added by this extension.

Computers and turtles:
fsx API:
Spoiler
function createLink(path, name)
This is currently the only function in the fsx API. If you have a program hidden somewhere in your filesystem, you can call this function in a program or from the lua interpreter and it'll create a link in your root directory that, when executed, executes the program it refers to.
path is the filepath to the program that shall be created a link for.
name is the name you want to give to your link, it defaults to the filename (last component of the path).

iox API:
SpoilerThis API is not to be confused with the IO Expander from the RedPower Control/Digital module. It will add more advanced methods for interacting with redstone later, but for now it just exposes some functions for terminal IO.

function colorWrite(message, color)
This function is for the interaction with advanced monitors. It detects if the monitor supports colored output and outputs the text with the color passed. If it isn't, it'll just output the text in white.
message is the text to be printed.
color is a numerical value corresponding to the ones from the colors API, it defaults to white.

function highlightWrite(message, color, doFillLine)
Almost the same as above, but setting the background color around the text, instead of coloring the text itself.
doFillLine is an optional boolean parameter that, when set to true, will make every line of printed text have the specified color, not only the printed text itself.

function colorWriteWithHighlight(message, textColor, highlightColor, doFillLine)
This is pretty much just the upper two function combined.

function colorPrint(message, color)
function highlightPrint(message, color, doFillLine)
function colorPrintWithHighlight(message, textColor, highlightColor, doFillLine)
These are just convenience functions that add a line feed at the end of the message, like the normal print(), the corresponding write() functions exist so that you can have different colored pieces of text in the same line.

property API:
SpoilerThis is a simple parser for .properties files or any other filetype seperating keys and values with a '=' one per line.

function getAll(path)
This returns a table of all the properties in a file. The keys are strings corresponding to the keys in the parsed file and the value the strings assigned with the '='
path is the path to the file to be parsed for properties.

function get(path, property)
This function again takes the path to a .properties file, but only returns the string value of the property specified as a parameter.

Turtles only:
navigate API:
SpoilerThis is by far the biggest API added by CraftOS Cakejoke Edition. It contains several methods for moving turtles around and keeping track of their position without the need for the constant presence of GPS hosts.

function createPosFile(path)
Creates a file for saving the position of the turtle. You normally won't need to use this, rather use setPosFilePath() instead.

function getPosFilePath()
Returns the path of the position file currently being used.

function setPosFilePath(path)
Sets the path of the position file that should be used to the path passed as a parameter. If there is no file present, it'll use createPosFile() to create one. This path should only be changed at the beginning of the program, otherwise it might get a wrong position

function readFromPosFile()
Reads the position out of the position file. Returns x, y, z and f (the direction that it is facing, same as in the F3 screen). It also saved the position to the local variables x, y, z and f.

function writeToPosFile(xPar, yPar, zPar, fPar)
Writes the given parameters to the position file.

function syncPos()
Uses the gps API to determine its position and writing it to the file. Not used in any other function in this API, to make it competely GPS independent.

function up(n, doBreak)
function down(n, doBreak)
Moves the turtle up/down by n and writes the new position to the file.
n is the amount of blocks to move, defaults to 1.
doBreak is an optional boolean parameter that, when set to true, makes the turtle try to break every block blocking its path.

function forward(n, blockedBehaviour)
function back(n)
Moves the turtle forward/back by n and writes the new position to the file.
blockedBehaviour in forward() determines what the turtle will do when its path is blocked. When set to the default value of 0, it'll stop, 1 will make it try to break everything in front of it and 2 will make it go up as long as its path is blocked.

function turnLeft(n)
function turnRight(n)
These functions turn the turtle in the respective direction n times and write the new f value to the file.
n is the number of turns to make, it defaults to 1.

function turnLeftTo(fPar)
function turnRightTo(fPar)
These turn the turtle in the respective direction until their facing direction is the same as the parameter passed and write the new f value to the file.

Programs:
SpoilerThis is an overview of the programs currently available.

Computers and turtles:
cjedisk
This program (path: "/cos-cje/programs/common/cjedisk") is for creating a disk from which you can install CraftOS Cakejoke Edition. It is currently the only way to install it and can be downloaded via pastebin get EbL8uUVa cjedisk Make sure you got a disk drive with a disk attached to your computer before running it. After having created the disk, you can then run disk/install to install it on your computer or turtle. The files will only be copied, so there is no need for creating more than one disk. If you wish to do so nevertheless, there is a copy of the cjedisk program in every installation. There are some options available for the install program, specified via disk/install -{options as a string}. The only ones currently available are O, T, o and t. O makes sure that no files will be overridden during the installation (files having the same name as the program files). When detecting a file that would need to be overridden, the installation is canceled immediately. o is the exact opposite, making every overrides needed without asking you. By default, every override will need to be confirmed, so running disk/install -o is recommended for updating an existing installation (for which you'll need to redownload the files using cjedisk). T will, when installing on a turtle, prevent all the turtle related APIs and programs from being installed. t is again the exact opposite, making the install script install the turtle stuff even on a normal computer (for editing purposes only).

Turtles only:
go
This is a replacement for the standard go program to keep track of the turtle's position while moving (using the navigate API). The install script will create a link to this in the root directory, to override the normal go.

turn
Same as go overrides the standard turn to keep track of the direction it's facing.

Installation:
See note in the description of cjedisk.

Feedback pl0x!