Zalo Agent
PhucMPham/zalo-agent-cli
Automate Zalo messaging, Official Account (OA), and MCP server integration via zalo-agent-cli.
Select and run explicitly requested, risk-based QA for Anarlog's CLI, webhooks, stdio MCP, hosted Cloud API, and remote MCP.
$ npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fastrepl/anarlog qa-cli-mcp-api --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/qa-cli-mcp-api .claude/skills/qa-cli-mcp-api && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "qa-cli-mcp-api" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/qa-cli-mcp-api into .claude/skills/qa-cli-mcp-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-cli-mcp-api", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/fastrepl/anarlog/tree/main/.agents/skills/qa-cli-mcp-apiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fastrepl/anarlog qa-cli-mcp-api --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/qa-cli-mcp-api .agents/skills/qa-cli-mcp-api && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qa-cli-mcp-api" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/qa-cli-mcp-api into .agents/skills/qa-cli-mcp-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-cli-mcp-api", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fastrepl/anarlog qa-cli-mcp-api --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/qa-cli-mcp-api .cursor/skills/qa-cli-mcp-api && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "qa-cli-mcp-api" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/qa-cli-mcp-api into .cursor/skills/qa-cli-mcp-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-cli-mcp-api", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/fastrepl/anarlog.git --path .agents/skills/qa-cli-mcp-api--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fastrepl/anarlog qa-cli-mcp-api --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/qa-cli-mcp-api .gemini/skills/qa-cli-mcp-api && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "qa-cli-mcp-api" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/qa-cli-mcp-api into .gemini/skills/qa-cli-mcp-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-cli-mcp-api", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install fastrepl/anarlog qa-cli-mcp-apiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/qa-cli-mcp-api .github/skills/qa-cli-mcp-api && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "qa-cli-mcp-api" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/qa-cli-mcp-api into .github/skills/qa-cli-mcp-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-cli-mcp-api", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fastrepl/anarlog qa-cli-mcp-api --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fastrepl/anarlog.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/qa-cli-mcp-api .opencode/skills/qa-cli-mcp-api && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "qa-cli-mcp-api" agent skill from https://github.com/fastrepl/anarlog/tree/main/.agents/skills/qa-cli-mcp-api into .opencode/skills/qa-cli-mcp-api/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-cli-mcp-api", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
qa-cli-mcp-apiSelect and run explicitly requested, risk-based QA for Anarlog's CLI, webhooks, stdio MCP, hosted Cloud API, and remote MCP.
QA CLI MCP API is an agent skill from fastrepl/anarlog. Select and run explicitly requested, risk-based QA for Anarlog's CLI, webhooks, stdio MCP, hosted Cloud API, and remote MCP. Test only affected lanes unless comprehensive coverage is requested.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Webhooks and MCP servers. It works with Model Context Protocol. The repository describes itself as: Open source Granola AI Alternative. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 259a04e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargopnpmsupabaseFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.anarlog.soFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
QA CLI MCP API loads about 3.3k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 1,747 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from fastrepl/anarlog at commit 259a04e, republished under its MIT licence (© fastrepl). 1,747 words, ~3,347 tokens.
.claude/skills/qa-cli-mcp-api/SKILL.md (or your agent's skills folder).Default to the smallest set of programmatic-interface lanes that can prove the change. Automated tests are necessary but do not replace a live smoke test when the changed boundary is only exercised by a real client or deployment.
This QA workflow is independent from releasing. A release request alone does not invoke it, and its results do not approve or block a release.
Inspect the exact branch, commit, or diff and map changed code to its direct
consumers before creating fixtures or credentials. In a GitButler workspace,
use but status and but show <commit-or-branch>; do not use the synthetic
workspace HEAD as the candidate or combine unrelated applied branches.
Find the original reproduction in the current or past Codex task, linked issue, PR, support report, or regression test. State the selected lanes and the reason for each before testing.
Select lanes by behavior, not by the existence of this checklist:
Run the closest affected automated tests, the original live reproduction, and
only credible boundary cases. A Rust or shared-crate change does not trigger
all lanes unless every lane consumes the changed behavior. Create only the
minimum non-sensitive fixture required for the selected checks. If a required
deployment, account, fixture, or client is unavailable, mark that check
BLOCKED; do not substitute unrelated lanes. Stop when the mapped risks are
covered.
Run every fixture, baseline, live lane, lifecycle case, privacy check, and cross-surface comparison below only when the user explicitly requests full or comprehensive programmatic-interface QA.
mktemp -d.
Remove that directory and revoke all generated keys after the run.but status
and inspect it with but show <branch>; do not use the synthetic workspace
HEAD as the candidate identity.BLOCKED, not PASS, when its required deployment, account,
fixture, or client is unavailable.Create two completed QA meetings through the desktop app:
agent-access-2026-07-28T120000Z.The fixture must include:
Record the meeting IDs and expected visible values. Do not seed SQLite or Postgres directly for the live happy-path tests.
Run from the repository root:
cargo test -p anarlog-cli
cargo test -p tauri-plugin-local-api
cargo test -p api-cloud
cargo test -p api openapi::tests
cargo check -p api-client
supabase test db
pnpm -F desktop exec vitest run \
src/cloud-api/client.test.ts \
src/settings/developers/index.test.tsx
pnpm -F desktop typecheck
pnpm exec dprint checkRequire the CLI and MCP contract snapshots, OpenAPI composition tests, authentication tests, desktop account-switch tests, and database policy tests to pass without updating snapshots or generated clients during the run.
If the change touches a shared DTO or generated client, regenerate it using the repository command that owns the artifact, then require a clean second generation. A generated diff after the second run is a failure.
Build the candidate CLI with cargo build -p anarlog-cli, then use the built
binary for every step.
anarlog --json doctor.0, reports schema_version: "1", uses command
doctor, reports ready: true, and resolves the intended QA database.meetings list with JSON output.meetings get IDmeetings note ID --kind notemeetings note ID --kind summarymeetings note ID --kind allmeetings transcript ID with at least two pagesmeetings history ID with at least two pagesmeetings export ID --format markdownmeetings export ID --format jsonschema_version, command,
data, and pagination fields. Following next_offset must produce no
duplicates or gaps.--force must fail
without changing the file; --force must replace it.Launch the exact desktop candidate and add a temporary receiver under Settings → Developers → Webhooks.
whsec_ secret exactly once, and a
non-HTTP URL must be rejected.Start anarlog mcp through a real MCP client over stdio. Do not validate this
lane by invoking server handlers directly.
tools/list. Repeat the handshake with a legacy 2025-11-25 client.list_meetingsget_meetingget_meeting_transcriptget_recurring_meeting_historyexport_meetingpropose_summary_editpropose_memo_editlist_proposalsget_proposaldecline_proposalresources/list, resources/templates/list, and resources/read for a
meeting, transcript page, and recurring series.Use the deployed candidate API and Supabase migration with the Pro QA account. Begin with Cloud API & Connectors disabled.
403 cloud_api_not_enabled.401;403 subscription_required;403 cloud_api_not_enabled;400 invalid_request;404 not_found;429 with retry-after.404.cloud_api_not_enabled, local data remains, and normal encrypted sync
data is unchanged.Connect a real Streamable HTTP MCP client to the deployed /mcp endpoint.
server/discover with MCP 2026-07-28, list tools without creating a
session, and require exactly list_meetings, get_meeting,
get_meeting_transcript, get_recurring_meeting_history, and
export_meeting. Verify the required protocol metadata and standard HTTP
headers on every modern request. Repeat discovery with a legacy
2025-11-25 stateless client to prove compatibility.WWW-Authenticate pointing at
https://api.anarlog.so/.well-known/oauth-protected-resource/mcp./oauth/consent route, the issued
token is bound to https://api.anarlog.so/mcp, and a tool call then reads
the marked meeting. Repeat with a static anl_ key for hosts that cannot
complete OAuth.For the marked meeting, compare CLI, local MCP, hosted REST, and remote MCP:
| Field | Required parity |
|---|---|
| Meeting | ID, title, kind, status, timestamps, timezone, language, series |
| Documents | canonical note, summary titles and markdown |
| People | participants and organizations |
| Actions | text, assignee, completion state |
| Transcript | text, word order, timestamps, speakers, page boundaries |
| History | IDs, newest-first ordering, pagination |
| Errors | stable code, appropriate protocol status, no secret leakage |
Local and hosted values must match after backfill settles. Hosted payloads must not contain local paths, audio paths, file paths, control characters, secrets, or fields outside the disclosed server-readable copy.
For targeted mode, report the candidate branch/commit, base, selected lane and
risk, PASS/FAIL/BLOCKED, and a one-line evidence note. List unrelated
lanes once as NOT APPLICABLE, and say explicitly that the result is not
comprehensive interface QA.
For comprehensive mode, produce one table with rows for:
Use PASS, FAIL, or BLOCKED with a one-line evidence note. Include the
candidate and deployment identifiers, fixture marker, clients tested, and
redacted response artifact locations. List every skipped negative case.
Any required FAIL or BLOCKED result means comprehensive QA did not pass.
Report that outcome without inferring release approval or blocking.
© fastrepl, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/qa-cli-mcp-api of fastrepl/anarlog.
Open the folder on GitHubat commit 259a04e
QA CLI MCP API next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| QA CLI MCP API this skillfastrepl/anarlog | 9.4k | — | ~3.3k | Automated safety check: Pass | MIT | |
| Zalo AgentPhucMPham/zalo-agent-cli | 161 | — | ~2.3k | Automated safety check: Pass | MIT | |
| X Twitter ScraperXquik-dev/x-twitter-scraper | 209 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Yolfi Paymentsyolfinance/yolfi-agent | 178 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Frontmcp Channelsagentfront/frontmcp | 146 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| E2a Doctortokencanopy/e2a | 192 | — | ~994 | Automated safety check: Pass | Apache-2.0 |
PhucMPham/zalo-agent-cli
Automate Zalo messaging, Official Account (OA), and MCP server integration via zalo-agent-cli.
Xquik-dev/x-twitter-scraper
Use Xquik to fetch X (Twitter) data or act through a connected account: search, profiles, followers, replies, threads, timelines, media downloads, bulk exports, trends, monitors, signed webhooks…
yolfinance/yolfi-agent
Add Yolfi crypto checkout, payment links, and webhook handling to an app through @yolfi/agent or the Yolfi MCP server.
agentfront/frontmcp
A skill your agent uses when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges.
tokencanopy/e2a
A skill your agent uses when an existing e2a MCP connection, inbox, custom domain, protection policy, webhook, or message delivery is failing or unclear.
zereight/gitlab-mcp
A skill your agent uses when working with the GitLab MCP server tools for merge requests, issues, repositories, pipelines, work items, variables, dependency proxy, vulnerabilities, webhooks, search…
fastrepl/anarlog
Use only in the Anarlog repository when the active checkout branch is exactly gitbutler/workspace.
fastrepl/anarlog
Use only in the Anarlog repository when the active checkout branch is exactly gitbutler/workspace.
fastrepl/anarlog
Inspect every open non-draft PR for CI failures and unresolved Cursor Bugbot findings, then fix them on the existing PR branches.
fastrepl/anarlog
Avoid direct React useEffect usage when writing or reviewing React components and hooks.
fastrepl/anarlog
QA Anarlog's critical Pro user journey on a signed staging candidate — onboarding, responsive launch, microphone and system-audio capture, automated summaries, and cloud sync.
fastrepl/anarlog
Build SQLite-backed reactive UI in apps/desktop using stable patterns for reads, selection, forms, writes, and loading states.
Works with
Categories
Select and run explicitly requested, risk-based QA for Anarlog's CLI, webhooks, stdio MCP, hosted Cloud API, and remote MCP. QA CLI MCP API is an agent skill from fastrepl/anarlog. Select and run explicitly requested, risk-based QA for Anarlog's CLI, webhooks, stdio MCP, hosted Cloud API, and remote MCP.
QA CLI MCP API fits situations like: tasks that involve Webhooks; tasks that involve MCP servers.
Run `npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a claude-code`. Or copy the skill folder (.agents/skills/qa-cli-mcp-api in fastrepl/anarlog) into .claude/skills/qa-cli-mcp-api in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a codex`. Or copy the skill folder (.agents/skills/qa-cli-mcp-api in fastrepl/anarlog) into .agents/skills/qa-cli-mcp-api in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fastrepl/anarlog --skill qa-cli-mcp-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qa-cli-mcp-api, .gemini/skills/qa-cli-mcp-api, .github/skills/qa-cli-mcp-api and .opencode/skills/qa-cli-mcp-api in your project.
Going by SKILL.md and its folder, QA CLI MCP API needs the command-line tools its instructions call (cargo, pnpm and supabase).
SKILL.md names 1 domain. In commands or code: api.anarlog.so; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
QA CLI MCP API is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with QA CLI MCP API: Zalo Agent (PhucMPham/zalo-agent-cli, 161 stars), X Twitter Scraper (Xquik-dev/x-twitter-scraper, 209 stars), Yolfi Payments (yolfinance/yolfi-agent, 178 stars) and Frontmcp Channels (agentfront/frontmcp, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fastrepl (a GitHub organization) maintains it in fastrepl/anarlog, which has 9,445 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 7, 2026.
Source: fastrepl/anarlog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.