-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
github-actions[bot] edited this page Jun 29, 2026
·
3 revisions
This tutorial takes you from zero to a working Kyto project in about 10 minutes.
| Name | What it is |
|---|---|
| Kyto | The language and project format |
| kura | The compiler binary used in the terminal |
Kyto is not a separate installable binary — projects use kura to compile Kyto sources and config.
Pick one method.
- Open Releases
- Download:
- Windows:
kyto-*-windows-x86_64.zip→ containskura.exe - Linux:
kyto-*-linux-x86_64.zip→ containskura
- Windows:
- Run
kura install(orkura.exe installon Windows) to copy into~/.local/bin
docker pull ghcr.io/voidmute/kyto:latest
docker run --rm -v "$PWD:/work" -w /work ghcr.io/voidmute/kyto:latest --versiongit clone https://github.com/voidmute/kyto.git
cd kyto
./asm/build.sh # Linux (needs nasm)
# or .\asm\build.ps1 # Windows
./bin/kura-asm installVerify:
kura --version
# kura 0.5.0-asmmkdir my-portal && cd my-portal
kura init --name my-portal
cp .kyto.config.example .kyto.configAfter kura init, the project contains:
my-portal/
kyto.toml
.kyto.config.example
.kyto.config ← create from `.kyto.config.example`
kyto/main.kyto ← optional advanced layer
This is the human-friendly file edited day to day. Comments start with +.
+ Production portal
DOMAIN portal.example.com
ADMIN alice
USERS alice bob guest
DATABASE_URL postgresql://localhost/portal
REPO_DIR /var/www/portal
NODE_ENV production
Rules:
-
DOMAIN host→ compiler setsAPP_URL=https://host -
USERS/ADMIN→ login names (lowercased automatically) - Any other
KEY value→ becomes an environment variable -
REPO_*keys → deploy script exports
Default manifest:
[project]
name = "my-portal"
config_only = true # ← recommended for beginners: skip .kyto files
[config]
file = ".kyto.config"
[emit.env]
file = ".env"
example = ".env.example"
[emit.users]
sql = "generated/users.sql"
json = "generated/users.json"
typescript = "generated/users.ts"
[emit.deploy]
script = "generated/deploy-env.sh"Set config_only = true if you only use .kyto.config — 90% of projects never need .kyto source files.
kura compileGenerated files (paths from kyto.toml):
| File | Contents |
|---|---|
.env |
Full secrets for local dev |
.env.example |
Redacted template safe for git |
generated/users.sql |
INSERT INTO users ... |
generated/users.json |
["alice","bob","guest"] |
generated/users.ts |
export const APP_USERS = [...] |
generated/deploy-env.sh |
export KEY=value for servers |
Check without writing:
kura checkgit clone https://github.com/voidmute/kyto.git
cd kyto/examples/minimal
kura compile
ls generated/.env
.kyto.config
kyto/local.kyto
generated/Commit .env.example and your kyto.toml — never commit real secrets.
| Goal | Page |
|---|---|
| Write custom compile logic | Language Tutorial |
Every kyto.toml key |
Configuration Guide |
| Encrypt a secrets file | Encryption & Privacy |
| How kura is built in ASM | Interesting Facts |
edit .kyto.config → kura compile → commit generated/ or let CI compile
That is the entire loop. No cloud dashboard. No vendor lock-in.