10. Configuration

KaKeKiKoKu has two levels of configuration: application settings (global, apply to all of KaKeKiKoKu) and project settings (specific to each project). Both are accessed from the Settings menu.

Where settings are stored

  • Application settings: a single JSON file, app-settings.json, that persists between sessions. On Windows it lives in %LOCALAPPDATA%\Wuniq\ (typically C:\Users\yourUser\AppData\Local\Wuniq\); on Linux (Snap) under ~/snap/wuniq/current/.local/share/Wuniq/.
  • Project settings: stored inside each project in .wuniq/config.yaml. They travel with the project — if you copy, move, or share it, the configuration is included.

Application settings

Accessed from Settings > Application. Changes apply immediately.

Appearance

  • Language: the language of KaKeKiKoKu's web interface. Available in the six supported languages: English, Spanish, German, French, Italian, and Portuguese.
  • Theme: KaKeKiKoKu includes 12 visual themes to adapt the interface to your taste:
    • Dark: High Contrast (default), Obsidian, Arctic, Dusk, Terminal, Slate
    • Warm: Ember, Crimson
    • Light: Quartz
    • Special: Rose, Forest, Corporate
  • Default content language: the language new projects will use for their .wuniq content. It is only a starting value — each project keeps its own setting and can differ (see Project settings below).

Local connection

KaKeKiKoKu runs locally and opens its web interface through a local port. If another application is already using the default port, you can change it here.

  • Port: the local TCP port used by KaKeKiKoKu's web interface and by connected AI clients. If no custom value is saved, KaKeKiKoKu uses 5050.
  • Valid values: choose an unused port between 1 and 65535. KaKeKiKoKu rejects invalid numbers and ports that browsers block for safety. If a port is rejected, choose a nearby unused one such as 5052 or 5053.
  • Applying changes: port changes take effect after KaKeKiKoKu restarts. Close any connected AI client first, then choose File > Exit in KaKeKiKoKu, reopen KaKeKiKoKu, and reopen your AI client. You do not need to touch your client's MCP registration: it carries no port, and KaKeKiKoKu's MCP bridge reads the current one every time it connects.

Editing

  • Double-click edit mode: which editor opens when you click on the content of a section or subsection — Markdown (assisted, with the formatting ribbon) or Text (a plain text area that keeps your browser's spellchecker). It's only the default: you can switch modes inside the editor at any time without losing changes. See chapter 7.

AI sync

KaKeKiKoKu has two sync modes:

  • Automatic: when your AI client supports channels (push notifications), KaKeKiKoKu pushes events in real time (sync requests, drift alerts, “Talk to AI”). Today only Claude Code supports channels, launched with the --dangerously-load-development-channels flag. Smoother experience.
  • Precise: KaKeKiKoKu detects changes but notifies you visually — you decide when to invoke the AI by typing sync in the chat. “Talk to AI” buttons copy text to the clipboard for you to paste. Works with any MCP client. More control.

The setting lives in two places and both write the same value: here, and the Auto / Precise toggle at the right end of the bottom status bar. New installs default to Precise. Switching to Automatic asks for confirmation once, to remind you that the mode needs a client with channels and the appropriate launch flag. If your AI is disconnected, KaKeKiKoKu keeps Precise and disables the toggle.

Automatic synchronization

  • Enable/disable: enables or disables automatic change monitoring (default: enabled).
  • Sync interval: the minimum time between two automatic analyses (default: 120 seconds, range: 10–600). KaKeKiKoKu analyses when it sees your files change, then holds off for this long before analysing again. A low value refreshes the panel sooner but scans more often.
  • Fallback polling interval: if the operating system's file monitor misses changes (it happens on some network and shared file systems), KaKeKiKoKu checks modification times periodically as a safety net (default: 90 seconds, range: 90–240).

The one-minute notice to your AI is not configurable. When an automatic analysis finds real issues, KaKeKiKoKu waits a fixed minute of quiet before telling your AI — that's the countdown you see in the bottom bar. It restarts if the picture changes and cancels itself if you fix everything, which is exactly why it isn't a knob: its job is to send one notification instead of twenty, and any value you could set would be a worse version of that.

Backups

  • Enable/disable: automatic backups are enabled by default. KaKeKiKoKu creates a snapshot every time you open a project and when the AI requests it.
  • Maximum copies: maximum number of snapshots kept per project (default: 10).
  • Maximum days: copies older than this many days are automatically deleted (default: 7).
  • Storage path: by default, KaKeKiKoKu stores backups in a subfolder of the application data directory. You can change it to any custom path (e.g., a backup drive or a cloud-synced folder).
  • Suppress backup info dialog: silences the informational dialog KaKeKiKoKu shows around backups. Turn it on once you know how the backup system works.

The panel header also has a Show configuration file button, which opens app-settings.json in your system editor if you ever need to inspect it.

Registering KaKeKiKoKu with your AI client

This is not a KaKeKiKoKu setting — it lives in your AI client — but it is the question that brings most people to this chapter.

For your client to know about KaKeKiKoKu, you register KaKeKiKoKu as an MCP server in the client's own configuration. The exact command depends on your operating system, how KaKeKiKoKu was installed, and which client you use, and each client stores that configuration differently. Because no single value fits every setup, KaKeKiKoKu does not hardcode a command for you: open the Quick Start Guide and your client's integration page, which give the exact command and configuration file for your platform (for example ~/.claude.json for Claude Code). The welcome screen also shows KaKeKiKoKu's MCP block with a one-click copy button.

KaKeKiKoKu does NOT launch your AI client. You open it as you would any other application. Each client has its own way of being launched, and that's not KaKeKiKoKu's job.

Project settings

Accessed from Settings > [Project name] > Settings. If you have multiple projects open, each has its own submenu. Settings are saved in .wuniq/config.yaml inside the project.

General

  • Project name: visible name in the interface. Defaults to the folder name.
  • Content language: language in which sidecars are written (e.g.: es, en, ja). Independent of the interface language and the language you use to communicate with your AI.

Exclusions (excluded)

File and folder patterns that KaKeKiKoKu ignores completely. They don't appear in the index, aren't processed during sync, and are invisible to the AI.

KaKeKiKoKu comes with default exclusions for the most common patterns:

  • Folders: .git/, node_modules/, bin/, obj/, .vs/, __pycache__/, venv/, .wuniq/ (KaKeKiKoKu's config is excluded from analysis).
  • Files: temporary files (*~, *.tmp), lock files (package-lock.json, pnpm-lock.yaml, Cargo.lock), compiled binaries (*.exe, *.dll, *.so).

You can add your own patterns using glob syntax. Exclusions are absolute: if you exclude a folder, KaKeKiKoKu will never scan it, even if you try to open a file inside it manually.

Folders KaKeKiKoKu always ignores

Some folders are pruned by KaKeKiKoKu before project exclusions are evaluated. This system floor protects version-control metadata, dependency trees, and noisy generated areas, and it is not configurable.

For example, KaKeKiKoKu always ignores .git/ and node_modules/. The complete read-only list appears in the project settings panel next to Excluded Patterns.

Discards (untracked)

Specific files that don't need a sidecar but remain visible. KaKeKiKoKu doesn't consider them orphans and doesn't ask for them to be documented. Unlike exclusions, untracked files appear in the navigation tree, but without the undocumented warning.

Typical examples: licenses (LICENSE, COPYING), decorative images, third-party libraries you vendor in your folder, static assets.

Neither an excluded nor an untracked resource can keep a KaKeKiKoKu sidecar. If a file, folder, or pattern matches existing context — including context inside a folder — KaKeKiKoKu refuses the change and identifies what must be reviewed. Preserve any knowledge you still need, then delete the context explicitly before trying again. KaKeKiKoKu never deletes knowledge automatically when you exclude or discard a resource.

Important resources

List of resources that KaKeKiKoKu automatically sends to the AI as context when opening a project. They should be the essential files that establish the project rules — for example, the main architecture entity, the project guidelines, or style sheets. You can add them from the project settings page or by clicking the flag icon on each resource's path bar.

Required fields and character limits

  • Required fields: by default, only _description is required. You can make other sections mandatory (e.g., forcing all file sidecars to have a _rules section). If a resource doesn't have a required section, sync will report an error issue.
  • Resource prose limit: every folder sidecar, file sidecar, and entity has the same fixed 52,000-character cap. Relation lines are not counted — they have a budget of their own. Folder listings are budgeted separately from their stored context.

Project Schema

Accessed from Settings > [Project name] > Schema. This read-only inventory shows the custom sections currently present in your project sidecars. Each custom section appears with:

  • Its name.
  • Usage counter: how many resources in the project contain this section.
  • Links to the resources where the section is used.

Use this view to locate inconsistencies or sections that need review. Open and inspect an individual resource before renaming or deleting one of its sections; KaKeKiKoKu does not mutate unread knowledge project-wide.