@fuzzland/tintin
v0.1.4
Published
Tintin daemon and CLI
Downloads
286
Readme
Tintin
Tintin is your girlfriend and engineer. It allows you to control Codex and other coding agents (WIP) via Telegram or Slack.
Setup
Make sure npm and Codex is available, and Codex has been logged in (either via API from environment or ChatGPT UI).
Run
npm i -g @fuzzland/tintin.Create
config.tomlby copying example config:- Set your projects. For example:
[[projects]] id = "tintin" name = "tintin" path = "/home/ubuntu/tintin" - Optionally set
[bot].github_repos_dirto control wheretintin newclones git repositories. Usegithub:<owner>/<repo>when adding GitHub sources. - Create a Slack bot and channel or create a Telegram bot and a group
- Set
[telegram]and/or[slack]secrets (supportsenv:VAR). - Optional: set
[security].*allowlists to allow only certain users to use the bot in defined set of group chats.
- Set your projects. For example:
Run
tintin start.
Useful commands
- Add a project:
tintin new "my project" <path-or-git-url> [id](usegithub:<owner>/<repo>for GitHub shorthand; supports--github-dirand--github-token) - Tail logs:
tintin log - Stop:
tintin stop - Status:
tintin status
Playwright MCP
Tintin can run the Playwright MCP sidecar so Codex can drive a real browser.
- Configure
[playwright_mcp]inconfig.toml(seeconfig.example.toml). Defaults startnpx -y @playwright/mcp@latestwith Chrome, shared user data dir, and an auto-picked port > 10000. - A single shared profile (
user_data_dir) is used across sessions; setexecutable_pathif Chrome is not on PATH. - Codex sessions are automatically pointed at the running Playwright MCP server; every Playwright MCP tool call triggers a screenshot saved under the configured
output_dirand posted to the chat.
Chat flows
- Telegram: mention the bot or send
/codex→ choose project → prompt → session is created (topics preferred; reply-thread fallback). - Slack: mention the bot → pick project (select) → modal for prompt (and custom path if needed) → session thread is created.
- List sessions:
- Telegram:
/sessions(or/codex sessions, or@bot sessions; addpage 2for older sessions,activeto filter) - Slack: mention the bot with “sessions” (e.g.
@bot sessions; addpage 2oractive)
- Telegram:
- Messages posted into a session while Codex is still running are queued and automatically resumed when the current run exits.
