Tutur is a public, offline-first skill collection for Indonesian writing, professional registers, urban slang, court registers, and Indonesian regional-language work.
The repository is built for AI agents and coding tools that understand the common skill-folder pattern:
skill-name/
├── SKILL.md
├── agents/openai.yaml
└── references/
Every skill keeps its main instructions in SKILL.md and its reusable local context under references/. Agents should not need internet access to understand the intent, risks, examples, source notes, and safe usage of a skill.
Tutur is not a "translate everything confidently" package. Indonesian regional languages, court registers, speech levels, and local dialects need care. Many skills in this repo are intentionally guarded: they help agents avoid fake fluency, ask for source samples when needed, and distinguish normal generation from public, ritual, legal, or official use.
| Skill | Status | Offline resources | Purpose |
|---|---|---|---|
tutur-humanizer |
Ready | Yes | Rewrite or review Indonesian text so it sounds natural, human, and register-appropriate. |
tutur-korporat-profesi |
Ready | Yes | Produce role-aware Indonesian workplace messages for sales, CS, admin, HRD, ops, finance, marketing, and leadership. |
tutur-jabodetabek-urban |
Ready | Yes | Produce or review Jaksel, Jaktim, Bekasi, and neutral Jabodetabek urban styles without stereotyping. |
tutur-kedhaton-solo |
Ready | Yes | Produce or adapt text with a source-aware Keraton Solo/Surakarta Kedhaton register. |
tutur-bagongan-jogja |
Ready | Yes | Produce or adapt text with a source-aware Keraton Jogja/Yogyakarta Bagongan register. |
tutur-aceh |
Ready | Yes | Produce or review Bahasa Aceh with a source-backed workflow. |
tutur-gayo |
Ready | Yes | Produce or review Bahasa Gayo with a source-backed workflow. |
tutur-minangkabau |
Ready | Yes | Produce or review Bahasa Minangkabau with a source-backed workflow. |
tutur-sunda |
Ready | Yes | Produce or review Bahasa Sunda with careful speech-level handling. |
tutur-jawa |
Ready | Yes | Produce or review Bahasa Jawa with careful speech-level and dialect handling. |
tutur-madura |
Ready | Yes | Produce or review Bahasa Madura with careful speech-level and dialect handling. |
tutur-bali |
Ready | Yes | Produce or review Bahasa Bali with careful anggah-ungguh handling. |
tutur-sasak |
Ready | Yes | Produce or review Bahasa Sasak with dialect and speech-level caution. |
tutur-banjar |
Ready | Yes | Produce or review Bahasa Banjar with Banjar Kuala/Hulu and polite pronoun caution. |
tutur-bugis |
Ready | Yes | Produce or review Bahasa Bugis with politeness marker and Lontara/script caution. |
tutur-makassar |
Ready | Yes | Produce or review Bahasa Makassar with politeness marker, script, and Makassar Malay distinction. |
tutur-batak-toba |
Ready | Yes | Produce or review Bahasa Batak Toba with kinship, marga, adat, and script caution. |
tutur-lampung |
Ready | Yes | Produce or review Bahasa Lampung with Api/A, Nyo/O, and aksara caution. |
Planned skills:
tutur-resmitutur-gaultutur-salestutur-customer-servicetutur-admintutur-hrdtutur-finance-admintutur-marketingtutur-jakseltutur-jaktimtutur-bekasitutur-betawi-jakartatutur-mangkunegarantutur-pakualamantutur-cirebon
tutur/
├── AGENTS.md
├── README.md
├── LICENSE
├── docs/
│ ├── agent-installation.md
│ ├── offline-resources.md
│ ├── regional-language-skill-rollout.md
│ ├── skill-authoring-standard.md
│ ├── roadmap.md
│ └── research/
├── scripts/
│ ├── check-local-resources.py
│ ├── install-skills.sh
│ ├── new-regional-skill.py
│ └── validate-skills.sh
└── skills/
├── manifest.json
├── tutur-humanizer/
│ ├── SKILL.md
│ ├── agents/openai.yaml
│ ├── references/
│ │ ├── offline-brief.md
│ │ ├── local-mirror.md
│ │ ├── usage-patterns.md
│ │ ├── examples.md
│ │ └── ...
│ └── scripts/
├── tutur-korporat-profesi/
├── tutur-jabodetabek-urban/
├── tutur-kedhaton-solo/
├── tutur-bagongan-jogja/
├── tutur-aceh/
├── tutur-gayo/
├── tutur-minangkabau/
├── tutur-sunda/
├── tutur-jawa/
├── tutur-madura/
├── tutur-bali/
├── tutur-sasak/
├── tutur-banjar/
├── tutur-bugis/
├── tutur-makassar/
├── tutur-batak-toba/
└── tutur-lampung/
ClawHub is the recommended public install path for OpenClaw users:
npx --yes clawhub install tutur-humanizer
npx --yes clawhub install tutur-jawa
npx --yes clawhub install tutur-korporat-profesiInstall every published Tutur skill into an OpenClaw-compatible skills directory:
mkdir -p ~/.openclaw/workspace/skills
for skill in \
tutur-humanizer \
tutur-korporat-profesi \
tutur-jabodetabek-urban \
tutur-kedhaton-solo \
tutur-bagongan-jogja \
tutur-aceh \
tutur-gayo \
tutur-minangkabau \
tutur-sunda \
tutur-jawa \
tutur-madura \
tutur-bali \
tutur-sasak \
tutur-banjar \
tutur-bugis \
tutur-makassar \
tutur-batak-toba \
tutur-lampung
do
npx --yes clawhub --workdir ~/.openclaw/workspace --dir skills install "$skill"
doneUpdate installed skills:
npx --yes clawhub updateInspect before installing:
npx --yes clawhub inspect tutur-sasakClone the repo:
git clone https://github.com/RamaAditya49/tutur.git
cd tuturInstall all skills into Codex-style local skills:
./scripts/install-skills.sh --agent codex --allInstall all skills into an OpenClaw workspace:
./scripts/install-skills.sh --agent openclaw-workspace --allInstall a single skill into any agent-compatible project:
./scripts/install-skills.sh --target /path/to/project/.agents/skills --skill tutur-humanizerThe installer is conservative. It skips existing skills by default. Use --replace only when you intentionally want the existing skill moved to a timestamped backup before copying the new one.
Tutur skills are plain folders. They work best in agents that load SKILL.md plus bundled resources.
Agents that need a machine-readable list can read skills/manifest.json.
| Agent/tool family | Recommended target |
|---|---|
| Codex / OpenAI skill-compatible local agents | ${CODEX_HOME:-$HOME/.codex}/skills |
| OpenClaw workspace skills | ~/.openclaw/workspace/skills or <workspace>/skills |
| OpenClaw project agent skills | <workspace>/.agents/skills |
| Personal AgentSkills | ~/.agents/skills |
| Claude Code-style project skills | <project>/.claude/skills when your setup supports that directory |
| Cursor, Cline, Roo, Windsurf, Kilo Code, Kiro, Trae, Continue, OpenHands-style wrappers | Use the tool's configured skill directory, commonly <project>/.agents/skills or a tool-specific <project>/.<tool>/skills directory |
| Hermes/OpenHermes/custom agentic runners | Copy SKILL.md and references/ into the runner's local context or skill registry |
| Any generic coding agent | Copy the needed skill folder and instruct the agent to read SKILL.md first, then local files under references/ |
Detailed install notes: docs/agent-installation.md
Language/register coverage guide: docs/language-skills.md
SEO/discovery standard for published skill pages: docs/seo-guidelines.md
- Match the user request to a skill by name or description.
- Read
SKILL.md. - Read
references/offline-brief.md,references/local-mirror.md, andreferences/usage-patterns.md. - Read any specific referenced file such as
examples.md,style-guide.md,pattern-bank.md, orlexicon.md. - Do the task with source discipline.
- Do not invent vocabulary, claims, citations, cultural formulas, or ritual language.
Example prompts:
Use $tutur-humanizer to make this Indonesian text sound natural.
Use $tutur-sunda to review this Bahasa Sunda output for politeness level.
Use $tutur-jawa to rewrite this announcement in polite public Bahasa Jawa.
Use $tutur-bali to check whether this temple announcement needs expert review.
Use $tutur-kedhaton-solo to make a source-aware Keraton Solo-style output.
Use $tutur-korporat-profesi to rewrite this HRD rejection email.
Use $tutur-jabodetabek-urban to make this caption sound Jaksel but not forced.
Use $tutur-sasak to review whether this Lombok tourism copy uses safe Sasak phrases.
Use $tutur-banjar to make this WhatsApp reminder sound Banjar-aware but still clear.
Use $tutur-bugis to make this community invitation Bugis-aware with tabe' but not overtranslated.
Use $tutur-makassar to make this tourism welcome text Makassar-aware without confusing it with Makassar Malay.
Use $tutur-batak-toba to make this Horas/Mauliate greeting without guessing kinship terms.
Use $tutur-lampung to create Api/A and Nyo/O variants for this short greeting.
Every ready skill must include:
SKILL.mdagents/openai.yamlreferences/offline-brief.mdreferences/local-mirror.mdreferences/usage-patterns.mdreferences/sources.mdreferences/examples.md
Language/register skills should also include references/style-guide.md. Court-register skills should include references/lexicon.md when a source-aware starter lexicon is useful.
Offline resource policy: docs/offline-resources.md
Run the full local validation:
./scripts/validate-skills.shThis checks:
- skill metadata with the skill validator,
- required local resource files,
- basic sample sections in the offline mirror files,
- target-language examples in every
examples.md, - the Indonesian AI-phrase scanner smoke test.
Core Indonesian references:
- EYD V: https://ejaan.kemdikbud.go.id/
- KBBI Daring: https://kbbi.kemdikbud.go.id/
- KBBI Petunjuk Pemakaian: https://kbbi.kemendikdasmen.go.id/Content/Files/Petunjuk%20Pemakaian.PDF
- Pedoman Umum Pembentukan Istilah: https://badanbahasa.kemendikdasmen.go.id/resource/doc/files/Pedoman_Umum_Pembentukan_Istilah_PBN_0.pdf
Regional/court references are summarized locally inside each skill under references/. Links are still kept in sources.md, but agents should not depend on live internet to understand the skill.
Maintainers publish from the terminal after local validation and git push. GitHub Actions is not required.
set -a
. ./.env.local
set +a
npx --yes clawhub login --token "$CLAWHUB_TOKEN" --no-browser
npx --yes clawhub --workdir "$PWD" --dir skills sync --root "$PWD/skills" --dry-run --all --changelog "Tutur skill update" --tags latest
npx --yes clawhub --workdir "$PWD" --dir skills sync --root "$PWD/skills" --all --changelog "Tutur skill update" --tags latestThe .env.local file is ignored by git. Never commit ClawHub tokens.
Follow docs/skill-authoring-standard.md. For regional languages, add one language per commit and push after validation.
MIT