KOKUM 1.1A language for practical software

Clear code.
Real possibilities.

A modern, XBase-inspired programming language for visual applications, connected services and data-driven software.

Develop on Linux. Run compatible apps with KokumVM.

XBase-inspired. Forward-looking.
Kokum programming language mascot: a purple kokum fruit with a green leaf and a code symbol.
Language. Designer. Runtime.
Visual GUI designer
Local & network IDE
REST & WebSockets
Local & remote databases
A connected toolkit

One language.
Room for your whole application.

Build the interface, write the logic and connect the data—with tools that belong in the same workflow.

Visual GUI designer

Build the interface. Bind the behavior.

Arrange forms and controls, edit properties and connect signals to exported Kokum slots. Add tables, graphs and a DatePicker without hand-building the interface.

Forms & layoutsSignals & slots
Standalone + network IDE

Your workspace. More ways to use it.

Develop locally or give authorized users browser access to one Linux-hosted IDE, with accounts and separate workspaces.

Linux-hostedBrowser access
Local + remote data

Put your application’s data to work.

Use SQLite, TigerDB and PostgreSQL providers, or connect to Remote FlatDB with a configuration file and matching key. Provider availability varies by platform.

SQLite · TigerDBPostgreSQL · FlatDB
HTTP, REST + WebSockets

Connected is part of the language.

Make HTTP and HTTPS requests, work with JSON responses and exchange messages over ws or wss. Choose the interface that fits your application.

URLREQUEST()URLGET() · URLPOST()
Tasks + backend services

Keep work organized, even in parallel.

Run background tasks and named threads, coordinate with mutexes and channels, and implement HTTP services in Kokum.

ASYNC / TASKServices & modules
Files, patterns + utilities

Practical tools for everyday logic.

Read and write files, search with regular expressions or natural patterns, and work with arrays, maps, exact decimals and string-trimming functions.

RegEx & FILE I/OTRIM() · TOTP()

Keep credentials outside source code. Use verified TLS and the access controls appropriate to your deployment.

The language, up close

Familiar at a glance.
Capable in practice.

Start with readable functions and typed values. Add a visual interface, an API call or a time-based code as your application grows.

Code listings, not an online runtime.
This page makes no API calls and asks for no secrets.

Readable from the first line.Typed values, familiar control flow and useful built-ins. Keep the intent of your program in view.

hello.kokum
FUNCTION Main AS INTEGER    LOCAL name AS STRING    LOCAL scores AS ARRAY    name = TRIM("  Kokum  ")    scores = [72, 85, 91, 88]    ? "Hello, " + name + "!"    ? "Average: " + STR(MEAN(scores))    RETURN 0ENDFUNC

Complete console example. Output: Hello, Kokum! and Average: 84.

slots.kokum
MODULE demo.slots VERSION "1.0.0"&& Bind the button's clicked event to this slot.EXPORT PROCEDURE btnReadDate_clickedPROCEDURE btnReadDate_clicked(sender, event, form)    LOCAL selected AS STRING    selected = form.datePicker1.GetDate("dd-mm-YYYY")    form.lblResult.Text = "Selected: " + selectedENDPROC

GUI slot example. Add datePicker1 (DatePicker), lblResult (Label) and btnReadDate (Button), use demo.slots as the slots module and bind clicked to this procedure. The bare datePicker1 variable remains an ISO STRING.

request.kokum
FUNCTION Main AS INTEGER    LOCAL response AS MAP    TRY        response = URLREQUEST( ;            "GET", "https://api.example.test/status", NULL, ;            {"TimeoutMs": 5000, "FollowRedirects": .F.} ;        )        ? response["Status"]        ? response["Body"]    CATCH error        ? "Request failed."        RETURN 1    ENDTRY    RETURN 0ENDFUNC

Replace the placeholder endpoint with your own API. HTTP error statuses are response values; transport failures are catchable. This website does not send the request.

otp.kokum
&& Public test secret; never use it for an account.FUNCTION Main AS INTEGER    LOCAL code AS STRING    code = TOTP( ;        "GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ", ;        {"Timestamp": 59, "Digits": 8} ;    )    ? code    RETURN 0ENDFUNC

Complete offline test example. Expected output: 94287082. The secret and timestamp are public test data, not account credentials.

admission.kformForm + slot

Choose a date. Make it yours.

A small preview of the DatePicker workflow.

Returned STRING20-09-2026
form.dtAdmission.GetDate("dd-mm-YYYY")

Interactive browser illustration, not a running Kokum application. Nothing is stored or sent.

Visual development

Draw the interface.
Give it behavior.

Arrange your controls, choose their properties and connect an event to a Kokum procedure. Keep presentation and application logic clearly separated.

Forms that work with your code

Use controls, layouts, tables, menus, graphs and images.

Signals connected to exported slots

Handle input and update the interface in ordinary Kokum.

DatePicker with GetDate(mask)

Return a formatted date while preserving its ISO value.

See the DatePicker code
Choose your platform

Develop on Linux.
Take KokumVM with you.

Get the complete Linux development environment, or a dedicated runtime for compatible Windows and macOS applications.

Windows

Run applications

A dedicated Windows runtime.

Run compatible Kokum bundles, including browser-rendered GUI applications, on Windows.

KokumVM runtime; no compiler or IDE
SQLite, TigerDB and Remote FlatDB
GUI 1.9 with DatePicker and GetDate
Windows VM
winvm.tar.gz

macOS

Run applications

A separate runtime for your Mac.

Run compatible Kokum applications with the macOS-specific virtual machine and its supplied libraries.

KokumVM runtime; no compiler or IDE
SQLite, TigerDB, PostgreSQL and Remote FlatDB
Check the bundle’s required GUI version
macOS VM
macvm.tar.gz

Choose a build matching your operating system and architecture. Keep the supplied runtime libraries together and check each archive’s notes for compatibility and validation status.

A few useful details

Start with clarity.

A straightforward development model, with the right tools for each platform.

Talk to the creator
Can I use the IDE from another computer?

Yes. Authorized users can access the network IDE through a browser connected to its Linux host. The compiler and IDE run on Linux; remote browser access does not install a native IDE on the client machine.

Are all features identical across the runtimes?

Use a runtime that supports your application’s VM and GUI requirements. PostgreSQL is currently omitted from the Windows VM, while SQLite, TigerDB and Remote FlatDB remain available. DatePicker and GetDate() are in the Linux and updated Windows GUI 1.9 line. The current macOS line has not yet adopted those date controls.

Do I need to compile Kokum before using it?

No. These downloads are intended to contain publisher-built tools. On Linux, use the supplied compiler and IDE to create your applications. On Windows and macOS, use the matching KokumVM to run compatible application bundles. Keep each package’s libraries and assets together.

How do I report a problem or ask a question?

Email anil.softx@gmail.com with your Kokum version, operating system and a small reproducible example. Do not include passwords, API keys, private connection files or TOTP secrets.