AI Skill Hub 推荐使用:Tlamatini AI助手 是一款优质的AI工具。AI 综合评分 6.8 分,在同类工具中表现稳健。如果你正在寻找可靠的AI工具解决方案,这是一个值得深入了解的选择。
自托管的AI开发者助手,完全运行在Mac本地。提供代码编写、工作流自动化等功能,采用Agent架构实现智能决策。适合追求隐私和本地部署的开发者使用。
Tlamatini AI助手 是一款基于 Python 开发的开源工具,专注于 AI助手、开发工具、本地部署 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
自托管的AI开发者助手,完全运行在Mac本地。提供代码编写、工作流自动化等功能,采用Agent架构实现智能决策。适合追求隐私和本地部署的开发者使用。
Tlamatini AI助手 是一款基于 Python 开发的开源工具,专注于 AI助手、开发工具、本地部署 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一: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('安装成功')"
# 命令行使用
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"
<p align="center"> <img src="Tlamatini.jpg" alt="Tlamatini" width="180" height="180" /> </p>
<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> · <a href="https://xaiht.org"><strong>🌐 Website</strong></a> · <a href="#13-demo-videos"><strong>🎬 More demos</strong></a> · <a href="#-quickstart-in-5-minutes"><strong>⚡ Quickstart</strong></a> </p>
---
| Requirement | Recommended | Notes |
|---|---|---|
| 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). |
| OS | Windows 11 | Linux/macOS work for chat + designer; Mouser/Keyboarder are Windows-leaning. |
| RAM | 16 GB+ | 32 GB comfortable for bigger embedding models. |
| Disk | ~10 GB | Most 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.
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):

| Plan | Cloud-model access | Why 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.)
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.
```bash git clone https://github.com/XAIHT/Tlamatini.git cd Tlamatini
python -m venv venv
"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>
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 applicationTempdirectory rather than the user's Music/Pictures/Documents folders (an explicitoutput_diris 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 callbackInputStream: 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 agentAllocConsole()s / reveals its own window and paints the REC light toCONOUT$, so the indicator shows up even for a headless wrapped run. Whisperer defaultrecord_seconds5 → 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 classNoGpuCudaFreeContractTestsproves 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 stalePYTHON_HOME. An end user installs only Ollama + the models; there is no separate Python install.build.pybundles and version-pins the carried interpreter (bundle_carried_python+ a hardCARRIED_PYTHON_VERSION = 3.12.10preflight), and every agent's Python resolver now prefers<install_dir>\pythonfirst. 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 toolchat_agent_whisperer, and emits anINI_SECTION_WHISPERERblock (the transcript text is the body) for Parametrizer. Local transcription needsfaster-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 SPEAKSinput_textaloud through the speakers by driving an Ollama connection that runs a neural TTS model (defaultOrpheus-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), afemale-onlygendershortcut, 8 emotive tags (<laugh>/<sigh>/…), alanguagehint, 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 toolchat_agent_talker, and emits anINI_SECTION_TALKERblock for Parametrizer. NOTE: rendering audible audio needssnac+torchinstalled (pip install snac torch); without them Talker saves the audio tokens and reportsstatus: 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 viaffpyplayer— whose pip wheel bundles ffmpeg + SDL so it ships entirely throughrequirements.txtand 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, andkeep_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 toolchat_agent_videoplayer, and emits anINI_SECTION_VIDEOPLAYERblock (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) viasoundfile+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 chosendevice_index/device_name), applies a softwarevolume_percent, and honourstime_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 toolchat_agent_audioplayer, and emits anINI_SECTION_AUDIOPLAYERblock (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> · <a href="VERSIONING.md"><strong>🏷️ Versioning</strong></a> · <a href="#14-contributing--license"><strong>🤝 Contributing</strong></a> </p>
---
This is the fastest way to be productive: clone, install, run. No installer, no admin, no frozen build. Five minutes.
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).
This is the big one. Multi-Turn turns Tlamatini from answerer into operator:
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).unified_agent_max_iterations default) — call tool, see result, decide next, chain.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.
| Symptom | Fix |
|---|---|
| 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 args | Suppressed by the dedup guard — the second call returns "skipped — duplicate". |
| 4096 iterations exhausted | You 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.
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:
"CreateC:\test\hello.txtwithHi 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.
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_wait → acp_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.
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:
Tool: Executer, Agent: SSHer, Skill: …),cmd.exe / PowerShell, Python interpreter, Remote SSH shell @ host, …).Two choices:
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*.tmpfile underC:/Tempand 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 viaagent/exec_permission.py(ExecPermissionBroker). A denial fails safe; a missing browser never silently runs an unconfirmed tool. See §9.3.
---
Click Context in the top nav:
| Menu entry | What 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.
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.
Agent架构设计合理,本地部署理念符合隐私需求。但项目成熟度有限,适合早期采用者和开发者探索��
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。
总体来看,Tlamatini AI助手 是一款质量良好的AI工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | 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 |
收录时间:2026-06-06 · 更新时间:2026-06-11 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。