能力标签
Tlamatini AI助手
🛠
AI工具

Tlamatini AI助手

基于 Python · 开源 AI 工具,GitHub 社区精选
英文名:Tlamatini
⭐ 6 Stars 💻 Python 📄 GPL-3.0 🏷 AI 6.8分
6.8AI 综合评分
AI助手开发工具本地部署工作流自动化代码助手
✦ AI Skill Hub 推荐

AI Skill Hub 推荐使用:Tlamatini AI助手 是一款优质的AI工具。AI 综合评分 6.8 分,在同类工具中表现稳健。如果你正在寻找可靠的AI工具解决方案,这是一个值得深入了解的选择。

📚 深度解析

Tlamatini AI助手 是一款基于 Python 的开源工具,在 GitHub 上收获 0k+ Star,是AI助手、开发工具、本地部署、工作流自动化领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
Tlamatini AI助手 依赖 Python 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Python 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 Tlamatini AI助手 的版本更新,及时通知重要功能变化。

📋 工具概览

自托管的AI开发者助手,完全运行在Mac本地。提供代码编写、工作流自动化等功能,采用Agent架构实现智能决策。适合追求隐私和本地部署的开发者使用。

Tlamatini AI助手 是一款基于 Python 开发的开源工具,专注于 AI助手、开发工具、本地部署 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 6
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
轻量级项目,按需更新
开源协议
GPL-3.0
AI 综合评分
6.8 分
工具类型
AI工具
Forks

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

自托管的AI开发者助手,完全运行在Mac本地。提供代码编写、工作流自动化等功能,采用Agent架构实现智能决策。适合追求隐私和本地部署的开发者使用。

Tlamatini AI助手 是一款基于 Python 开发的开源工具,专注于 AI助手、开发工具、本地部署 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:pip 安装(推荐)
pip install tlamatini

# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install tlamatini

# 方式三:从源码安装(获取最新功能)
git clone https://github.com/XAIHT/Tlamatini
cd Tlamatini
pip install -e .

# 验证安装
python -c "import tlamatini; print('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
tlamatini --help

# 基本用法
tlamatini input_file -o output_file

# Python 代码中调用
import tlamatini

# 示例
result = tlamatini.process("input")
print(result)
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# tlamatini 配置文件示例(config.yml)
app:
  name: "tlamatini"
  debug: false
  log_level: "INFO"

# 运行时指定配置文件
tlamatini --config config.yml

# 或通过环境变量配置
export TLAMATINI_API_KEY="your-key"
export TLAMATINI_OUTPUT_DIR="./output"
📑 README 深度解析 真实文档 完整度 63/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

简介

<p align="center"> <img src="Tlamatini.jpg" alt="Tlamatini" width="180" height="180" /> </p>

Tlamatini

She doesn't chat. She does.

<p align="center"> <em>"One who knows" — in Nahuatl.</em><br/> A self-hosted AI developer assistant that turns your PC into a workshop where 76 agents collaborate to actually <strong>get things done</strong>. </p>

<p align="center"> <a href="https://www.youtube.com/watch?v=4MyRXBahHuU&t=41s"><strong>▶️ Watch the one-minute demo</strong></a> &nbsp;·&nbsp; <a href="https://xaiht.org"><strong>🌐 Website</strong></a> &nbsp;·&nbsp; <a href="#13-demo-videos"><strong>🎬 More demos</strong></a> &nbsp;·&nbsp; <a href="#-quickstart-in-5-minutes"><strong>⚡ Quickstart</strong></a> </p>

---

1. Overview

2.1. Prerequisites

RequirementRecommendedNotes
Python**3.12.10****Installer users do NOT need Python** — the installer ships a self-contained Python 3.12.10 (with all dependencies) into <install_dir>\python\, and every pool agent runs on that carried interpreter. Python 3.12.10 is required **only** when running Tlamatini from source.
Java / Git*(bundled)***Installer users do NOT need these either** — a Java runtime (<install_dir>\jre, for J-Decompiler) and Git (<install_dir>\git, for Gitter + the STM32er MCP clone) are carried and wired onto JAVA_HOME/PATH at startup. Playwright browsers are also bundled (Playwrighter/Googler).
External backends*(your own)*Still your responsibility: **Ollama** (the LLM server + models), **STM32CubeIDE** (STM32 builds), any **remote infra** the connector agents target (Docker/Kubernetes/SSH/SCP/SQL/MongoDB), and **ACPX external coding CLIs** (claude/codex/gemini/…). Firmware toolchains (ESP32/Arduino) self-download on first use (needs network).
OSWindows 11Linux/macOS work for chat + designer; Mouser/Keyboarder are Windows-leaning.
RAM16 GB+32 GB comfortable for bigger embedding models.
Disk~10 GBMost is local LLM models.
LLM server**Ollama**Default. Cloud Claude/Gemini also supported.

You do not need administrator rights for any of the steps below.

2.4. Cloud models require an Ollama Pro/Max plan

Five of the six default model tags in §2.3 carry the :cloud suffix — kimi-k2.6:cloud, qwen3.5:cloud, gpt-oss:120b-cloud, qwen3.5:397b-cloud, and glm-5.1:cloud (only Nomic-Embed-Text:latest runs locally). Those are Ollama Cloud models: they live on Ollama's servers, not on your machine, and ollama pull only registers a stub that proxies inference to the cloud. Reaching that cloud requires a logged-in Ollama account and a subscription tier that allows the workload you intend to run.

The plan structure (prices are deliberately omitted from this README because they change — check <https://ollama.com/pricing> for the current numbers):

Ollama plan structure — Free / Pro / Max

PlanCloud-model accessWhy it matters for Tlamatini
**Free**1 cloud model concurrently, light usage. Local open-weights models are unlimited.Enough to *try* a single cloud model for a one-shot chat. **Not enough** for Tlamatini's default config, which pins different cloud models for chat (kimi-k2.6:cloud), FlowCreator (qwen3.5:397b-cloud), several workflow agents (gpt-oss:120b-cloud), and vision (qwen3.5:cloud) — so a real Multi-Turn run typically needs 2–3 cloud models loaded at once.
**Pro**3 concurrent cloud models, ~50× the Free monthly quota, access to the larger cloud-only models, ability to upload / share private models.The realistic minimum for running Tlamatini out-of-the-box with its shipped cloud-model defaults — Multi-Turn + Exec Report + occasional Image-Interpreter calls.
**Max**10 concurrent cloud models, ~5× the Pro quota, designed for sustained heavy agentic workloads.Recommended for long-running ACPX relays, FlowHypervisor-supervised flows, and Croner-driven unattended runs that chain many cloud calls per hour.

If you do not want to subscribe, you can run Tlamatini entirely on local open-weights models. Edit Tlamatini/agent/config.json (chained-model, unified_agent_model, mcp_file_search_model, flow_creator_model, image_interpreter_model) and every agent config.yaml that names a :cloud tag, and swap them for a model you have pulled locally (for example, llama3.1:8b, qwen2.5-coder:14b, mistral-nemo:12b). Performance and quality will scale with your GPU/CPU — Multi-Turn and ACPX both work fine on a sufficiently large local model.

API keys are separate. This subscription only governs *:cloud Ollama models. The ACPX runtime can additionally spawn external coding-agent CLIs that bring their own credentials (Anthropic API key for claude, OpenAI key for codex, Google key for gemini, etc.) — those are configured in Tlamatini/agent/config.json under acpx.agents.<id>.env and are unaffected by your Ollama plan. See §5.6 for the easy-button setup. (Unreal MCP is not part of ACPX — it's its own MCP surface, documented in §6.)

2.2. Install Ollama (no admin rights)

Open PowerShell normally (do not Run as Administrator), then:

$env:OLLAMA_INSTALL_DIR = "$env:LOCALAPPDATA\Programs\Ollama"
irm https://ollama.com/install.ps1 | iex

Close the window, open a fresh PowerShell, and verify:

ollama --version
ollama serve     # leave running in its own window if it's not already up
Invoke-WebRequest http://127.0.0.1:11434/api/tags -UseBasicParsing

Tlamatini expects Ollama at http://127.0.0.1:11434.

2.5. Clone, install, migrate

```bash git clone https://github.com/XAIHT/Tlamatini.git cd Tlamatini

python -m venv venv

🌟 What can you do with her? A few examples in plain English:

"Read this whole codebase, find every endpoint that touches the user table, and write me a security report." "Open Chrome, log into our staging dashboard, screenshot the analytics page, email it to the team." "Build the STM32 firmware, flash it to the connected board, and watch the serial output for errors." "Spin up Claude Code, give it the refactor task, then hand the output to Cursor for testing." "Design a flow that runs every morning, scrapes our competitors' pricing, and posts the diff to Slack."

She can do all of that — self-hosted on your own machine, powered by the model you choose: a local Ollama model, Ollama Cloud (the shipped default), or a cloud API like Anthropic Claude.

---

<p align="center"> <a href="https://github.com/XAIHT/Tlamatini/releases/tag/v1.19.3"><img src="https://img.shields.io/badge/VERSION-v1.19.3-1E90FF?style=for-the-badge&labelColor=2D2D2D" alt="Version v1.19.3" /></a> <a href="https://www.python.org/downloads/release/python-31210/"><img src="https://img.shields.io/badge/PYTHON-3.12.10-3776AB?style=for-the-badge&labelColor=2D2D2D&logo=python&logoColor=white" alt="Python 3.12.10" /></a> <a href="https://www.djangoproject.com/"><img src="https://img.shields.io/badge/DJANGO-5.2.4-092E20?style=for-the-badge&labelColor=2D2D2D&logo=django&logoColor=white" alt="Django 5.2.4" /></a> <a href="#7-building-a-frozen-distribution"><img src="https://img.shields.io/badge/PLATFORM-WIN%2010%20%7C%2011-0078D6?style=for-the-badge&labelColor=2D2D2D&logo=windows&logoColor=white" alt="Platform Windows 10 | 11" /></a> <a href="#95-agent-catalog-the-76-types-by-family"><img src="https://img.shields.io/badge/AGENTS-76-8A2BE2?style=for-the-badge&labelColor=2D2D2D" alt="76 Agents" /></a> <a href="#35-tutorial-the-multi-turn-toggle"><img src="https://img.shields.io/badge/TOOLS-83-16A34A?style=for-the-badge&labelColor=2D2D2D" alt="83 Multi-Turn Tools" /></a> <a href="#5-acpx--external-coding-agent-clis-as-tools"><img src="https://img.shields.io/badge/ACPX-12%20TOOLS-FF8C00?style=for-the-badge&labelColor=2D2D2D" alt="ACPX 12 Tools" /></a> <a href="#312-the-acpx-skills-menu--browse-configure-diagnostics-reload"><img src="https://img.shields.io/badge/SKILLS-27-DB2777?style=for-the-badge&labelColor=2D2D2D" alt="27 Skills" /></a> <a href="#10-embedding-memory-pre-flight-guard-gpu-hosts"><img src="https://img.shields.io/badge/RAG-FAISS%20%2B%20BM25-009688?style=for-the-badge&labelColor=2D2D2D" alt="Hybrid RAG" /></a> <a href="LICENSE"><img src="https://img.shields.io/badge/LICENSE-GPLV3-1E90FF?style=for-the-badge&labelColor=2D2D2D" alt="License GPLv3" /></a> </p>

⚡ Quickstart in 5 minutes

Three steps: install Ollama, pull the models Tlamatini ships with, run Tlamatini from the release ZIP.

1 · Install Ollama (no admin rights — full detail in §2.2):

$env:OLLAMA_INSTALL_DIR = "$env:LOCALAPPDATA\Programs\Ollama"
irm https://ollama.com/install.ps1 | iex
ollama serve     # leave this running in its own window

2 · Pull the six default models — these exact tags, nothing else (the five :cloud tags need an Ollama Pro/Max plan, see §2.4; only Nomic-Embed-Text:latest runs locally):

ollama pull glm-5.1:cloud
ollama pull gpt-oss:120b-cloud
ollama pull qwen3.5:397b-cloud
ollama pull qwen3.5:cloud
ollama pull kimi-k2.6:cloud
ollama pull Nomic-Embed-Text:latest

3 · Install Tlamatini from the release ZIP — download Tlamatini v1.19.3, then:

1. Unzip the release archive anywhere (no admin rights needed).
2. Run  Installer.exe  → pick an install directory → finish.
   (The bundled Python 3.12.10, Java, Git and Playwright browsers are carried in —
    nothing else to install.)
3. Launch Tlamatini from the desktop / Start-Menu shortcut.
4. Open  http://127.0.0.1:8000  and log in with   user / changeme   — then say hi.

Prefer running from a cloned repo instead of the ZIP? Use the full §2 Quickstart (source mode).

---

<details> <summary><strong>📦 What's new in v1.19.3 (2026-06-10) — click to expand</strong></summary>

Patch releases v1.19.1 → v1.19.3 (2026-06-09 → 2026-06-10) are stability fixes on top of the v1.19.0 audio/voice wave below: Talker now chunks long input by sentence so it can speak for hours instead of cutting off near the single-generation token cap, and the media agents (Recorder / Camcorder / Whisperer / Shoter) now default their output to the application Temp directory rather than the user's Music/Pictures/Documents folders (an explicit output_dir is still honored). --- Zero-latency microphone "REC" indicator for the audio agents (v1.19.0). Whisperer's self-contained mic path and the Recorder agent now pop a live on-screen REC light the instant recording begins — a blinking red dot plus a real-time VU bar driven by the actual microphone samples — so you can see that the mic is open and capturing. The indicator is fed by a callback InputStream: it turns ON at the first audio block (~20 ms after the stream opens, comfortably under a 50 ms latency budget) and turns OFF the moment the stream stops, with no polling. Because pool agents run detached with no console of their own, the agent AllocConsole()s / reveals its own window and paints the REC light to CONOUT$, so the indicator shows up even for a headless wrapped run. Whisperer default record_seconds 5 → 30. The mic-capture default is longer so a quick "transcribe what I say" run actually gives you time to speak a sentence before it stops. CPU-only / CUDA-free build contract, locked by tests. A new build-test class NoGpuCudaFreeContractTests proves the build and runtime are CPU-only and free of any hard CUDA requirement — the torch CPU wheel is used, nvidia* GPU wheels are pruned from the bundle, and faster-whisper / ctranslate2 fall back to CPU — so both audio agents (Whisperer, Recorder) run on a machine with no GPU. (Whisperer still auto-detects an NVIDIA GPU and uses it when present; the contract only guarantees it never needs one.)

</details>

<details> <summary><strong>📦 What's new in v1.17.0 (2026-06-05) — click to expand</strong></summary>

Bullet-proof installation — the installer now carries its own Python. v1.17.0 re-engineers the install process so it can't be tripped by the host machine's Python: the installer ships a self-contained Python 3.12.10 (with every pool-agent dependency already installed) into <install_dir>\python\, and all pool agents now run on that carried interpreter unconditionally — immune to a missing, wrong-version, or PATH-shadowed system Python and to a stale PYTHON_HOME. An end user installs only Ollama + the models; there is no separate Python install. build.py bundles and version-pins the carried interpreter (bundle_carried_python + a hard CARRIED_PYTHON_VERSION = 3.12.10 preflight), and every agent's Python resolver now prefers <install_dir>\python first. This release also lands an improvement to the prompting chain plus assorted install-flow and README fixes. NEW (v1.18.0, 2026-06-08) — Whisperer, speech-to-text / voice recognition (76th agent type). Whisperer turns SPOKEN AUDIO into a STRING of text — the speech-to-text sibling of Talker (text-to-speech). It is 100% self-sufficient for the microphone: it opens, configures (channels/sample-rate/gain) and records the mic ITSELF (no Recorder needed), or transcribes a given audio FILE. Transcription runs faster-whisper LOCALLY by default — it auto-detects an NVIDIA GPU (CUDA) and ALWAYS falls back to CPU on a machine without one (and auto-retries on CPU if the GPU path fails) — or a cloud Whisper API (Groq/OpenAI). NOTE: Ollama cannot do speech-to-text (it has no audio input), so recognition is always done by the ASR engine; an optional Ollama pass only tidies the FINISHED transcript's punctuation. Observational, so it stays out of the Exec Report; ships on both the canvas and as the wrapped Multi-Turn tool chat_agent_whisperer, and emits an INI_SECTION_WHISPERER block (the transcript text is the body) for Parametrizer. Local transcription needs faster-whisper (absent + no cloud key → status: engine_unavailable, not a crash). Recently (v1.17.2, 2026-06-07) — Talker, text-to-speech via Ollama (75th agent type). Talker SPEAKS input_text aloud through the speakers by driving an Ollama connection that runs a neural TTS model (default Orpheus-3b-FT) — the voice-synthesis sibling of the media family (AudioPlayer plays an existing file; Talker GENERATES speech from text). It is FEMALE-ONLY by design (Tlamatini is female; a male voice is FORBIDDEN BY DESIGN, with no override — asking for one makes Talker close its execution entirely and report "male voice is forbidden by design — NOW CLOSING.. BYE", never substituting). It exposes the model's full parameter surface: the permitted FEMALE voices (tara [default]/leah/jess/mia/zoe), a female-only gender shortcut, 8 emotive tags (<laugh>/<sigh>/…), a language hint, the Ollama connection (ollama_url/ollama_token/model), and generation knobs (temperature/top_p/top_k/min_p/repetition_penalty/max_tokens/seed). The model streams audio TOKENS that are decoded to a 24 kHz WAV by the SNAC codec, saved and played (device_index/volume_percent/sample_rate). Observational/output, so it stays out of the Exec Report; ships on both the canvas and as the wrapped Multi-Turn tool chat_agent_talker, and emits an INI_SECTION_TALKER block for Parametrizer. NOTE: rendering audible audio needs snac + torch installed (pip install snac torch); without them Talker saves the audio tokens and reports status: tokens_only. Recently (v1.15.0, 2026-06-04) — the media-playback pair VideoPlayer + AudioPlayer. VideoPlayer (74th agent type) — on-screen video PLAYBACK with audio. VideoPlayer plays a video file (.mp4/.mov/.mkv/.avi/.webm) with sound on a chosen display, the on-screen sibling of AudioPlayer (speakers). It decodes + plays audio via ffpyplayer — whose pip wheel bundles ffmpeg + SDL so it ships entirely through requirements.txt and PyInstaller's --collect-all (no external ffmpeg, no runtime download) — and draws the window with the already-bundled OpenCV; if ffpyplayer is ever unavailable it degrades to silent OpenCV video. Knobs: display_index (which monitor), volume_percent, time_played (0 = whole video once; N>0 = exactly N seconds, TRUNCATING a longer file or LOOPING a shorter one with a final partial segment), window_width/window_height, fullscreen, and keep_aspect (letterbox vs stretch). Observational/output, so it stays out of the Exec Report; ships on both the canvas and as the wrapped Multi-Turn tool chat_agent_videoplayer, and emits an INI_SECTION_VIDEOPLAYER block (full played path + time played) for Parametrizer. The same v1.15.0 release also added AudioPlayer — audio PLAYBACK completing the media-I/O family. Also in v1.15.0 (2026-06-04): AudioPlayer (73rd agent type) — audio PLAYBACK completes the media-I/O family. AudioPlayer plays an audio file through a system output device (speakers / audio out) via soundfile + sounddevice — the playback counterpart of Recorder (microphone-IN): together with Shoter (screen) and Camcorder (camera) they now cover screen / camera / microphone-in / speakers-out. It plays to the default output by default (or a chosen device_index/device_name), applies a software volume_percent, and honours time_played — 0 plays the whole file once, a positive value plays exactly that long, TRUNCATING a longer file or LOOPING a shorter one (with a streaming callback so a huge duration over a tiny file never allocates a giant buffer). Sample rate is read from the file by default (sample_rate: 0, correct pitch). Observational/output (it changes no persistent state), so it stays out of the Exec Report; ships on both the canvas and as the wrapped Multi-Turn tool chat_agent_audioplayer, and emits an INI_SECTION_AUDIOPLAYER block (full played path + time played) for Parametrizer. The previous release (v1.14.0) added the observational capture pair Camcorder (webcam) and Recorder (microphone).

</details>

<p align="center"> <a href="BookOfTlamatini.md"><strong>📖 Long-form docs</strong></a> &nbsp;·&nbsp; <a href="VERSIONING.md"><strong>🏷️ Versioning</strong></a> &nbsp;·&nbsp; <a href="#14-contributing--license"><strong>🤝 Contributing</strong></a> </p>

---

2. Quickstart (source mode)

This is the fastest way to be productive: clone, install, run. No installer, no admin, no frozen build. Five minutes.

3.4. Tutorial: the **internet** toggle

Tick internet when the question genuinely needs fresh web data:

"What is the latest stable version of FastAPI right now?"

Tlamatini classifies the prompt with a small LLM call ("does this need the web?"), then DuckDuckGo-searches, summarizes the top results, and inlines the summary into the LLM's context. Leave it unticked for everything else (the round-trip adds latency).

3.5. Tutorial: the **Multi-Turn** toggle

This is the big one. Multi-Turn turns Tlamatini from answerer into operator:

  • The planner picks the relevant subset of Tlamatini's 79 Multi-Turn tools — 20 core Python tools (execute_command, agent_starter, googler, the image-analysis pair, the chat_agent_run_* lifecycle helpers, …), 47 wrapped chat-agent tools, and 12 ACPX/Skill tools — binding at most max_selected_tools per request (default cap: 20).
  • The unified-agent loop runs up to 4096 iterations (the unified_agent_max_iterations default) — call tool, see result, decide next, chain.
  • Wrapped sub-agents run in headless background runtimes (no console pop-ups).

Try this: tick Multi-Turn, send

"Take a screenshot of my desktop and save it to C:\Tlamatini-test\shot.png."

Watch the chat. The LLM picks chat_agent_shoter, calls it with the right args, reads the JSON result, and replies "Done — saved to C:\Tlamatini-test\shot.png." Open the file. The screenshot is there.

SymptomFix
LLM says "Tool X is not available"The planner did not bind it. Check [Planner._select] console lines; add matching keywords to your prompt or raise max_selected_tools.
Same tool fired twice with identical argsSuppressed by the dedup guard — the second call returns "skipped — duplicate".
4096 iterations exhaustedYou probably hit a polling loop. Use chat_agent_sleeper instead of busy-polling.

Multi-Turn stacks with Set-Context: the LLM reasons over your code and runs tools on the result.

3.6. Tutorial: the **Exec Report** toggle

Below the prose answer, Tlamatini appends per-agent execution tables — one HTML table per kind of state-changing agent that fired. Each row = one real tool call + ✓/✗.

Tick Multi-Turn + Exec Report and send:

"Create C:\test\hello.txt with Hi from Tlamatini, then read it back and tell me its size."

After the prose, you see:

─── List of File Creator Operations ───
 #  │ Command                                        │ ✓/✗
 1  │ filepath='C:\test\hello.txt' content='Hi …'    │  ✓
─── List of Executer Operations ───
 #  │ Command                                        │ ✓/✗
 1  │ type C:\test\hello.txt                         │  ✓

What gets a table: state-changing tools only (execute_command, execute_file, unzip_file, decompile_java, every chat_agent_* that touches the system, all five acp_* lifecycle tools — merged into one "List of ACPx Operations" — and invoke_skill). Read-only tools (Crawler, Googler, Prompter, Summarizer, File-Interpreter/Extractor, Image-Interpreter, Shoter, Sleeper, monitor_*, run_*, window_present) are intentionally absent. Tables persist into chat history — reload the page and they are still there.

3.7. Tutorial: the **ACPX** toggle

ACPX lets the chat delegate to external coding-agent CLIs running on your box. Picture it:

You ─► Tlamatini chat ─► acp_doctor → acp_spawn(claude) → acp_send_and_wait
                                  │
                                  ▼ subprocess.Popen
                                claude CLI / gemini / cursor / codex / qwen / …

When ACPX is ticked, the planner sees the 12 ACPX/Skill tools. When unticked, those tools are filtered out — the chat behaves like legacy Multi-Turn. (Implemented in agent/acpx/__init__.py::filter_acpx_tools().)

Prereq: at least one external CLI on PATH. The simplest:

npm install -g @anthropic-ai/claude-code
claude --version

Then drop your key in Tlamatini/agent/config.json (or use the setup-new-acpx-key skill — much easier).

Tick Multi-Turn + ACPX + Exec Report and send:

"Use ACPX to spawn the claude CLI in C:/Development/Tlamatini, ask it to summarize CLAUDE.md in 5 bullet points, harvest the answer, and kill the session."

You see: acp_doctor (always first) → acp_spawn(agent_id="claude", task=…)acp_send_and_waitacp_kill. The 5 bullets land in the prose, and the Exec Report shows a "List of ACPx Operations" table with all four rows.

ACPX deep dive in Part §5.

3.8. Tutorial: the **Ask Execs** toggle

Ask Execs puts a human in the loop before every action. It only activates while Multi-Turn is on — the checkbox stays disabled and greyed until you tick Multi-Turn — because the prompt lives inside the Multi-Turn tool loop. When unticked, Tlamatini behaves exactly like the legacy Multi-Turn flow.

With Ask Execs ticked, before each state-changing Tool / MCP / Agent runs, the chain pauses and a modal dialog appears showing exactly what is about to happen:

  • the Tlamatini Tool / MCP / Agent that is going to execute (e.g. Tool: Executer, Agent: SSHer, Skill: …),
  • the underlying tool name,
  • the parameters of execution (read-only textarea),
  • the program to be executed (read-only textarea — the command / script / intent),
  • the shell to be executed (read-only textarea — cmd.exe / PowerShell, Python interpreter, Remote SSH shell @ host, …).

Two choices:

  • Proceed → that tool runs and the chain continues as normal to the next step (which prompts again).
  • Deny → the entire chain stops immediately. No further tools run. You get back:
  • the prose answer so far,
  • the Exec Report tables of what did execute (only if Exec Report is also ticked),
  • and — always — a big red ⛔ "Execution interrupted" banner naming the exact Tool/MCP/Agent you denied, plus its program/command, shell, and parameters.

Read-only / polling tools (chat_agent_run_status, chat_agent_run_log, get_current_time, window_present, …) are not prompted — they only observe, they do not "execute".

Try this: tick Multi-Turn + Ask Execs (and optionally Exec Report) and send:

"Delete every *.tmp file under C:/Temp and then list what's left."

You'll get a permission dialog for the deletion step. Click Deny and the run halts with the red banner showing exactly the command you stopped; click Proceed and it carries on. This is the safety belt for destructive or sensitive operations — review each action before it touches your machine.

Implementation: the synchronous tool loop blocks on a browser round-trip via agent/exec_permission.py (ExecPermissionBroker). A denial fails safe; a missing browser never silently runs an unconfirmed tool. See §9.3.

1.3. Demo videos

---

3.2. Setting code as context

Click Context in the top nav:

Menu entryWhat it does
**Set directory as context**Loads a folder. Tlamatini reads every text file, splits, embeds, builds FAISS+BM25, grounds answers in your code.
**Set file as context**Single-file scope.
**Set canvas as context**Use the code currently shown in the canvas (handy for iterative editing).
**Clear context**Drops the loaded context.

Set directory as context now loads a project at any depth under the app root. The old browser showDirectoryPicker() only exposed the leaf folder name, so deeply-nested projects could not be reached; it was replaced by a backend native Win32 folder picker (views.pick_context_directory_view, route pick_context_directory/) that returns the real absolute path. path_guard.is_within_application_root() then accepts the application root or any descendant of it, and agent_page_init.js falls back to manual path entry on non-Windows hosts.

A green banner at the top shows the current context path. If embedding runs out of memory, Tlamatini packs the source files as a fallback context — retrieval quality drops, access to your code does not.

If you refresh the browser and Tlamatini restores a saved context automatically, the input now stays disabled until the contextual RAG chain has actually finished rebuilding. That closes the old "restored banner arrived before the context was really ready" race on the first load stage.

3.12. The **ACPX-Skills** menu — Browse, Configure, Diagnostics, Reload

Tlamatini ships with 27 skills — markdown SKILL.md packages under agent/skills_pkg/ that the LLM can invoke through invoke_skill('<name>', '{...args...}'). They cover everything from the canonical acp-router (pick the right external CLI for an intent) and summarize (compress text faithfully) to setup-new-acpx-key, skill-creator, flow-making (turn a plain-language objective into a canvas-loadable .flw by driving the FlowCreator engine — supersedes the legacy tlamatini-flow-from-objective), code-review (senior-engineer git-diff review with an APPROVE/REQUEST_CHANGES verdict), security-audit (multi-scanner SAST/secret/dependency sweep) and kali-pentest (an authorized Kali Linux assessment runbook that drives the Kalier agent / MCP-Kali-Server), the tlamatini_* audit/lint/refactor helpers, and integration stubs for GitHub / Notion / Slack / Gmail / Jira / Todoist / Trello / Weather.

Before 2026-05-17 the only way to interact with them was through the LLM (list_skills to enumerate, invoke_skill to run). The ACPX-Skills navbar dropdown — added next to Agents and Config in the chat toolbar — gives you an operator-grade admin surface that does NOT require the LLM. Four entries:

ACPX-Skills -> Browse Skills

Opens a two-pane modal: a left-side list of all 27 skills (with a green/red dot for enabled / disabled and a runtime tag) and a right-side detail pane that shows the selected skill's full identity — description, runtime (in-process / acpx), acpx_agent if any, budgets (max_iterations · max_seconds · max_tokens), trigger keywords, requires_tools and requires_mcps, inputs and outputs (with required-field markers), and the full markdown body. A search box at the top filters by name or description as you type. Pure read — nothing is written back.

Backed by GET /agent/skills/ (list payload) and GET /agent/skills/<name>/ (deep detail). Use it when you want to know what a skill actually does before you ask the LLM to call it, or when you've just authored a new SKILL.md and want to confirm it parsed correctly.

ACPX-Skills -> Configure Skills

A checkbox grid — one row per skill — that mirrors the existing MCPs and Agents dialogs exactly. Toggle a checkbox off, click Continue, and the row's Skill.enabled flips to false. Two consequences immediately:

  • list_skills (the LLM's enumeration tool) filters that skill out of its returned array.
  • invoke_skill('<name>', ...) returns {"ok": false, "code": "SKILL_DISABLED"} instead of running.

Toggling back to enabled restores the skill. This is the right knob when (a) you want to hide an unfinished skill from the planner, (b) you don't have the API key for an integration skill (e.g. notion without NOTION_TOKEN) and don't want the LLM to keep trying, or (c) you're running a demo and want a minimal tool surface.

The toggle goes over the same WebSocket channel as set-mcps / set-tools / set-agents — payload encoding name=description=true/false,name=description=true/false,.... Backend handler is in consumers.py::receive and calls save_skill(name, enabled) which touches only the enabled column.

ACPX-Skills -> Diagnostics

A cross-check report that catches drift between the skill catalog and the rest of the system. Sections:

  • Missing tool dependencies — for each skill whose requires_tools lists a tool that's currently disabled in the Tools dialog, lists the skill + the unmet tools. (A disabled tool means the skill would fail at runtime — Diagnostics surfaces it before the LLM tries.)
  • Missing MCP dependencies — same idea against disabled Mcp rows.
  • Unknown ACPX agents — for skills with runtime: acpx, flags any acpx_agent value that isn't in the AcpAgent table (typo, removed CLI, etc.).
  • Orphan DB rowsSkill rows whose SKILL.md file no longer exists on disk. Usually a sign that someone deleted a skill directory without running Reload.

Each section is collapsed when clean (✓ green) and expanded with red ⚠ counts when something's wrong. Run it after editing SKILL.md files or after toggling tools/MCPs to confirm nothing is silently broken. Backed by GET /agent/skills/_/diagnostics/ — pure read, no writes.

ACPX-Skills -> Reload Registry

A single-click button that re-runs the registry boot pipeline: rescan agent/skills_pkg/, refresh every Skill DB row's metadata (description, runtime, frontmatter_json, body_sha256), prune any DB row whose SKILL.md is gone. The user-toggled enabled field is preserved across reload.

Use this after you've authored or edited a SKILL.md on disk — no server restart needed. The success toast tells you the new skill count.

What the DB stores — and what it does NOT

By design, the Skill DB table stays at "enumeration + enable/disable" only, exactly the way the Tool and Mcp tables work. Per-skill permissions (filesystem read/write globs, allowed shell commands, network deny/allow), budgets (max_iterations / max_seconds / max_tokens), and the skill's body all live in the SKILL.md frontmatter on disk and are the only source of truth. The admin UI deliberately does NOT let you override them from the browser — if you want to change a permission, edit the SKILL.md and click Reload. This keeps git diff honest: every behavioural change to a skill shows up in a file, not in a databas

3.3. Tutorial: a one-shot question (no toggles)

Leave every checkbox unticked. Type:

"Write a Python function that validates an email address with a regex. Just the function."

The bot answers in one shot. Code lands in the right-hand canvas with copy/save buttons. This is the legacy chat path — fast, no tools, no internet.

🎯 aiskill88 AI 点评 B 级 2026-06-06

Agent架构设计合理,本地部署理念符合隐私需求。但项目成熟度有限,适合早期采用者和开发者探索��

📚 实用指南(长尾问题)
适合谁
  • 需要 Tlamatini 解决具体问题的开发者与运营人员
最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
Tlamatini 中文教程Tlamatini 安装报错怎么办Tlamatini 与同类工具对比Tlamatini 最佳实践Tlamatini 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要 Tlamatini 解决具体问题的开发者与运营人员
⭐ 最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • Python 依赖冲突:建议用 venv / uv 隔离环境

👥 适合人群

AI 技术爱好者研究人员和学生开发者和工程师技术创业者

🎯 使用场景

  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发

⚖️ 优点与不足

✅ 优点
  • +GPL-3.0 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • 安装和初始配置可能需要一定技术基础
  • 功能完整性通常不如成熟商业产品
  • 技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。

🔗 相关工具推荐

🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

目前主要针对Mac优化,其他系统支持度待确认
💡 AI Skill Hub 点评

总体来看,Tlamatini AI助手 是一款质量良好的AI工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。

📚 深入学习 Tlamatini AI助手
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 Tlamatini
原始描述 开源AI工作流:Tlamatini is a self-hosted AI developer assistant that runs entirely on your mac。⭐6 · Python
Topics AI助手开发工具本地部署工作流自动化代码助手
GitHub https://github.com/XAIHT/Tlamatini
License GPL-3.0
语言 Python
🔗 原始来源
🐙 GitHub 仓库  https://github.com/XAIHT/Tlamatini 🌐 官方网站  https://xaiht.org

收录时间:2026-06-06 · 更新时间:2026-06-11 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。