{"slug": "kennel-1-0-0-native-desktop-app-for-managing-ai-cli-agents", "title": "Kennel 1.0.0 – Native Desktop App for Managing AI CLI Agents", "summary": "Kennel 1.0.0, a native desktop app for managing multiple AI CLI agents side by side, has been released. The app allows users to run, organize, and persist sessions for tools like Claude Code and Kiro CLI, with sessions surviving app restarts and machine reboots. It aims to solve the pain of juggling terminal tabs and lost context for AI coding agents.", "body_md": "Kennel is a fast, native desktop app that lets you run and manage many interactive\nAI CLI agents — like **Claude Code**, **Kiro CLI**, **OpenAI Codex**, or any tool of\nyour own — side by side in a single window. Organize them into groups, keep them\nrunning between tasks, and jump between conversations without juggling terminal tabs.\n**Most importantly: restart your app or reboot your machine, and every session comes\nback exactly where it left off, using the agent's native resume flag** (e.g., Claude's\n`--continue`\n\nor Kiro's `--resume`\n\n).\n\n| Platform | Download | Notes |\n|---|---|---|\nWindows 11 |\n|\n\n**macOS ARM**[kennel-macOS_26.5.1_arm64.zip](https://github.com/eranif/kennel/releases/download/1.0.0/kennel-macOS_26.5.1_arm64.zip)See [Releases](https://github.com/eranif/kennel/releases) for other platforms and versions.\n\nIf you use AI coding agents from the terminal, you already know the pain: a dozen terminal tabs, no idea which agent is waiting for you, and lost context every time you close a window. Kennel fixes that.\n\n- 🗂️\n**Everything in one place**— every agent session lives in a single window, in a tidy sidebar you can organize however you like. - 📁\n**Group your work**— bucket sessions into groups such as*Work*,*Customer Tickets*, or*Experiments*. Collapse a group to get it out of the way; reopen it when you're back. - 🔄\n**Never lose your place**— sessions persist between app restarts and resume with their native`--resume`\n\n/`--continue`\n\nflags, so your agent picks up where it left off. - ⚡\n**Runs everything, natively**— each session is a real terminal (full PTY) backed by OpenGL on macOS & Windows, so any interactive CLI works exactly as it does in your shell — colors, prompts, and all. - 🧩\n**Add any agent, no code required**— define new agents through a simple dialog or JSON. Local or over SSH. - 🌈\n**Make it yours**— built-in color themes, custom fonts, and per-agent icons.\n\n| Start an agent | Manage groups |\n|---|---|\n\nDefine a new agent in three guided steps:\n\n| Step 1 — Local or Remote? | Step 2 — What to launch |\n|---|---|\n\n| Step 2 — Filled in | Step 3 — Shell & Environment |\n|---|---|\n\nKennel has just three things to understand:\n\n| Concept | What it is |\n|---|---|\nAgent |\nA definition of how to launch an AI CLI — its executable, arguments, environment, icon, and (optionally) a remote host. Kennel ships with Claude Code, Kiro CLI, and OpenAI Codex predefined. |\nSession |\nA single, named, running instance of an agent in a working directory. Each session is a live terminal. |\nGroup |\nA folder in the sidebar that holds related sessions. There's always a Default group; create as many others as you want. |\n\nThe sidebar on the left is a tree of **Groups → Sessions**. The large area on the\nright is the terminal for the currently selected session.\n\nPress ** Ctrl/Cmd+T**, choose\n\n**File → Start Agent…**, or click the\n\n**➕** button in the toolbar. The\n\n**Start Agent** dialog lets you set:\n\n**Agent**— which CLI to launch (defaults to your configured default agent).** Session Name**— a unique, human-friendly label for this session.** Session Group**— pick an existing group or type a new name to create one on the fly.** Working Directory**— where the agent runs. Browse locally, or browse a** remote host over SSH**for remote agents.*Create an inner folder within the working directory*— automatically nests a folder named after the session.*Resume the Latest Session in This Folder*— relaunch the most recent agent run from that directory instead of starting fresh.\n\nClick **OK** and your agent launches in a new session under the chosen group.\n\nSelecting a session in the sidebar brings its terminal to the front. Type and interact exactly as you would in any terminal. While an agent is busy, its sidebar icon shows a spinner; when it's done, it returns to the agent's icon — so you can tell at a glance which agents are working and which are waiting for you. If a background session finishes while the window is inactive, Kennel gently requests your attention.\n\nRight-click a session for the context menu:\n\n**Move to Group ▸**— send the session to another group, or** New Group…**to create one. Moving the last session out of a group removes the empty group (except** Default**, which always stays).** Close**— permanently remove the session.\n\nRight-click a **group** header for:\n\n**Start Agent…**— launch a new agent pre-assigned to that group.** Rename Group…**— rename the group (Default can't be renamed).** Close Group**— close every session in the group at once.** Refresh**— restart every session in the group.\n\nBeyond the three built-ins, you can define your own agents — a locally-installed CLI,\nan internal tool, or an agent that runs on a **remote machine over SSH**.\n\nOpen **File → Create New Agent…** (** Ctrl/Cmd+N**) to launch the\n\n**New Agent Wizard**, which walks you through three steps:\n\nChoose whether the agent runs on your local machine or on a remote host over SSH.\nIf remote, provide the host address and (optionally) a username. You can browse your\nsaved SSH hosts with the **…** button.\n\nConfigure the agent's identity and command:\n\n| Field | Purpose |\n|---|---|\nName |\nDisplay name shown in menus and the sidebar. |\nExecutable |\nThe command to run — the wizard auto-discovers known CLIs (`claude` , `kiro-cli` , `codex` ) locally or on the remote host. |\nLaunch Args |\nArguments passed on every launch (e.g. `--agent my-agent` ). |\nResume Args |\nFlag(s) used to resume a prior session (e.g. `--resume` , `--continue` ). Pick from suggestions via …. |\nImage |\nAn SVG icon to represent the agent in the UI. Browse shipped assets via …. |\n\n| Field | Purpose |\n|---|---|\nLogin Shell |\nOverride the shell used to spawn the agent (e.g. `/bin/zsh` , `wsl.exe` ). |\nEnvironment Variables |\nExtra name/value pairs passed to the agent process. Add or remove with the New / Delete buttons. |\n\nClick **Finish** and the new agent appears immediately in the toolbar and the\n**Start Agent** dialog.\n\n| Action | Shortcut |\n|---|---|\n| Start Agent | `Ctrl` /`Cmd` + `T` |\n| New Terminal | `Ctrl` /`Cmd` + `E` |\n| Create New Agent | `Ctrl` /`Cmd` + `N` |\n| Restart Current Session | `F5` |\n| Select Next Session | `Ctrl` /`Alt` + `→` |\n| Select Previous Session | `Ctrl` /`Alt` + `←` |\n\nKennel remembers your sessions between runs. On restart it restores each session and,\nwhere the agent supports it, resumes the underlying conversation using that agent's\nnative resume flag (configured as **Resume Args**). This means closing Kennel — or\nrebooting — doesn't cost you your agent's context.\n\nSessions that self-exit (via `Ctrl-D`\n\nor `exit`\n\n) are automatically removed from the\nsidebar.\n\n**Themes**— pick a terminal color theme from** Settings → Theme**(Cobalt2, Monokai, One Dark, One Light, and more).** Font**— set the terminal font and size from** Settings → Change Terminal Font…**.** Remote hosts**— manage reusable SSH hosts from** Settings → Manage Remote Hosts…**.** Plain terminals**— open a terminal without an agent via** File → New Terminal**(`Ctrl`\n\n/`Cmd`\n\n+`E`\n\n).\n\nAll settings live under `~/.kennel/`\n\nand are editable in the app.\n\nFor build prerequisites, per-platform instructions, and the developer guide, see\n** BUILDING.md**.\n\nEverything lives under `~/.kennel/`\n\n:\n\n```\n~/.kennel/\n├── config.json      # Your agent definitions\n├── workspace.json   # Your sessions and their groups\n├── .persist.json    # UI preferences (window size, theme, fonts) — safe to delete\n└── logs/kennel.log  # Application log\n```\n\nCorrupt `config.json`\n\nor `workspace.json`\n\nfiles self-recover: Kennel backs up the bad\nfile (`*.bak-<timestamp>`\n\n) and falls back to safe defaults, so the app always launches.\n\nAgents are stored in `config.json`\n\nunder the `agents`\n\narray. The **Edit / New Agent**\ndialog is the friendly front-end for this, but you can edit the file directly:\n\n```\n{\n  \"version\": 1,\n  \"global\": {},\n  \"agents\": [\n    {\n      \"name\": \"Claude Code\",\n      \"executable\": \"claude\",\n      \"baseArgs\": [],\n      \"resumeArg\": \"--continue\",\n      \"iconPath\": \"claude-code.svg\",\n      \"extraArgs\": [],\n      \"env\": {}\n    },\n    {\n      \"name\": \"Kiro CLI\",\n      \"executable\": \"kiro-cli\",\n      \"baseArgs\": [\"chat\"],\n      \"resumeArg\": \"--resume\",\n      \"iconPath\": \"kiro.svg\",\n      \"extraArgs\": [],\n      \"env\": {}\n    },\n    {\n      \"name\": \"Remote Builder\",\n      \"executable\": \"kiro-cli\",\n      \"baseArgs\": [\"chat\"],\n      \"resumeArg\": \"--resume\",\n      \"iconPath\": \"builder.svg\",\n      \"extraArgs\": [],\n      \"remoteHost\": \"dev-box.example.com\",\n      \"remoteUser\": \"user\",\n      \"env\": { \n        \"PATH\": \"/home/user/python3/bin:$PATH\" \n      }\n    }\n  ]\n}\n```\n\nSet `remoteHost`\n\n/`remoteUser`\n\nto run an agent over SSH.\n\n**A session won't launch.** Make sure the agent's **Executable** is on your `PATH`\n\n(or use an absolute path). Check `~/.kennel/logs/kennel.log`\n\nfor the exact command and\nerror.\n\n**Remote (SSH) agent fails to connect.** Confirm you can `ssh <user>@<host>`\n\nnon-interactively (key-based auth). Kennel uploads a small helper and runs the agent\nover an interactive SSH session.\n\n**Sessions didn't come back after restart.** Verify `~/.kennel/workspace.json`\n\nexists\nand is readable; if it was corrupt, look for a `workspace.json.bak-<timestamp>`\n\nbackup.\n\n**Theme colors look off.** Pick a built-in theme from **Settings → Theme** and check the\nlog for theme-loading errors.\n\nKennel is licensed under the **BSD 3-Clause License**. See [ LICENSE](/eranif/kennel/blob/main/LICENSE).\n\n**Eran Ifrah** — [GitHub](https://github.com/eranif)\n\n[CodeLite IDE](https://codelite.org)— the cross-platform, OpenSource IDE.[wxTerminalEmulator](https://github.com/eranif/wxTerminalEmulator)— the embedded terminal control that powers Kennel's sessions (fetched automatically at build time).[wxWidgets](https://www.wxwidgets.org)— the cross-platform GUI toolkit Kennel is built on.", "url": "https://wpnews.pro/news/kennel-1-0-0-native-desktop-app-for-managing-ai-cli-agents", "canonical_source": "https://github.com/eranif/kennel", "published_at": "2026-07-07 17:22:46+00:00", "updated_at": "2026-07-07 17:29:42.491169+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents"], "entities": ["Kennel", "Claude Code", "Kiro CLI", "OpenAI Codex", "OpenGL"], "alternates": {"html": "https://wpnews.pro/news/kennel-1-0-0-native-desktop-app-for-managing-ai-cli-agents", "markdown": "https://wpnews.pro/news/kennel-1-0-0-native-desktop-app-for-managing-ai-cli-agents.md", "text": "https://wpnews.pro/news/kennel-1-0-0-native-desktop-app-for-managing-ai-cli-agents.txt", "jsonld": "https://wpnews.pro/news/kennel-1-0-0-native-desktop-app-for-managing-ai-cli-agents.jsonld"}}