Remogram
SCM & forge boundary MCP: normalized, typed JSON from attributed Gitea, GitLab, and GitHub providers
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@remogram/mcpclaude mcp add remogram -e 'GITHUB_TOKEN=<your github_token>' -e 'GH_TOKEN=<your gh_token>' -e 'GITLAB_TOKEN=<your gitlab_token>' -e 'GITEA_TOKEN=<your gitea_token>' -e 'REMOGRAM_CWD=<REMOGRAM_CWD>' -e 'REMOGRAM_OPERATOR_CONFIG=<REMOGRAM_OPERATOR_CONFIG>' -- npx -y @remogram/mcp@0.2.0-beta.4
{
"mcpServers": {
"remogram": {
"command": "npx",
"args": [
"-y",
"@remogram/mcp@0.2.0-beta.4"
],
"env": {
"GITHUB_TOKEN": "<your github_token>",
"GH_TOKEN": "<your gh_token>",
"GITLAB_TOKEN": "<your gitlab_token>",
"GITEA_TOKEN": "<your gitea_token>",
"REMOGRAM_CWD": "<REMOGRAM_CWD>",
"REMOGRAM_OPERATOR_CONFIG": "<REMOGRAM_OPERATOR_CONFIG>"
}
}
}
}
Variables d'environnement
GITHUB_TOKENsecret GitHub API token for github-api repositories.GH_TOKENsecret Alternative GitHub API token for github-api repositories.GITLAB_TOKENsecret GitLab API token for gitlab-api repositories.GITEA_TOKENsecret Gitea API token for gitea-api repositories.REMOGRAM_CWDRepository root for Remogram to inspect when the MCP host launches from another working directory.REMOGRAM_OPERATOR_CONFIGOptional path to a local operator write-command overlay.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
Remogram
Generic SCM/forge boundary CLI and MCP server. Emits provider-attributed JSON facts — git-resolved refs from local git (refs compare, sync plan) vs forge-reported PR SHAs from forge APIs (pr view, pr checks). No workflow or planning-tool concepts in output.
PR-by-number reconciliation: pr view / pr checks compare forge-reported forge_source_sha to the local rev for forge_source_branch_ref. Divergence → ok: false, error_code: stale_head — git fetch, not a forge outage.
Planning tools interpret intent and workflow authority outside Remogram.
Install
npm install -g @remogram/cli @remogram/mcp
remogram --version
remogram version --json
Legacy preview (frozen @beta, optional): npm install -g @remogram/cli@beta @remogram/mcp@beta
Development checkout: clone this repo, npm ci, ./scripts/npm-link.sh. Default branch: main.
Quick start
- Copy
.remogram.json.example→.remogram.json(setprovider,owner,repo; addbaseUrlfor self-hosted Gitea/GitLab). - Export token:
GITEA_TOKEN,GITHUB_TOKEN/GH_TOKEN, orGITLAB_TOKEN. - Bootstrap:
remogram doctor --json
remogram provider capabilities --json
remogram repo status --json
remogram pr view --number 1 --json
remogram merge plan --number 1 --json
Command catalog: remogram contract --json. Agent skill: npx skills add attebury/remogram --skill remogram-consumer -g -y.
Providers
| Forge | "provider" | Token env |
|---|---|---|
| Gitea | gitea-api | GITEA_TOKEN |
| GitHub | github-api | GITHUB_TOKEN or GH_TOKEN |
| GitLab | gitlab-api | GITLAB_TOKEN |
Use *-api providers (forge HTTP). Reserved github-gh / gitea-tea IDs return provider_unsupported — not implemented in v1. Official CLIs (gh, tea, glab) are not required.
Configuration
Read/plan by default. Opt in to writes with write_commands in .remogram.json (or a bound operator overlay outside git). Missing id → write_not_configured.
| Write id | Command | Notes |
|---|---|---|
cr_open | cr open | Separate from merge |
cr_close | cr close | Gitea lifecycle |
merge | merge execute | Requires --expected-base-sha / --expected-head-sha; not implied by cr_open |
publish_branch | publish execute | Git push to configured remote |
status_set | status set | Commit status POST |
issue / cr_edit ids | matching commands | See contract --json |
merge plan is read-only — reports blockers[]; does not execute or authorize merges. mergeability: clean is conflict-free git only.
Optional merge_policy waivers (allow_missing_checks, allow_pending_checks) relax check blockers for repos without CI — env: REMOGRAM_ALLOW_MISSING_CHECKS, REMOGRAM_ALLOW_PENDING_CHECKS. Doctor fails when enabled in strict checkouts.
Operator overlay discovery: --operator-config → REMOGRAM_OPERATOR_CONFIG → $XDG_CONFIG_HOME/remogram/operator/<provider>-<owner>-<repo>.json. bind must match forge identity.
Boundary and trust
Remogram emits forge facts only — no integration authority refs, lane roles, task ids, or handoff payloads in JSON.
| Concept | Packet field | Notes |
|---|---|---|
| PR base | forge_target_branch_ref | Forge-reported |
| PR head | forge_source_branch_ref | Evidence only |
| Default branch | default_branch | Not integration authority |
Every forge command packet includes type, schema_version, provider_id, remote_name, repo_id, observed_at, ok. Producer sections (e.g. remogram.forge_facts.v1 from evidence forge-facts --json) use nested producer fields. Trust envelope and enums; treat forge-sourced strings (titles, URLs) as untrusted prose.
Inventory commands (refs inventory, cr inventory, whoami, branch protection, cr files, forge changes, …) extend read/plan — details in remogram contract --json and the consumer skill references.
MCP
Stdio server remogram-mcp delegates to the CLI — same JSON as remogram … --json. Setup: examples/mcp/README.md. Set REMOGRAM_CWD to the consumer repo root.
Live verification
Cross-forge fixture repo: remogram-smoke (mirrors on GitHub/Gitea). Use --json packets after install; monorepo smoke-compare scripts are dev-only.
Testing
npm test
npm run test:coverage
npm run security:secrets -- --full-history
Coverage policy
npm run test:coverage instruments @remogram/core only; @remogram/cli, @remogram/mcp, and @remogram/provider-* are excluded. Thresholds: none — no enforced percentage gates. Drift guard: tests/core/coverage-config.test.mjs.
CI (GitHub): .github/workflows/ on push/PR to main.
Packages
| Package | Role |
|---|---|
@remogram/cli | CLI |
@remogram/mcp | MCP adapter |
@remogram/core | Envelope, config, caps |
@remogram/provider-{gitea,github,gitlab}-api | Supported forge backends |
Agent skills
npx skills add attebury/remogram --skill remogram-consumer -g -y (consumer) or --skill remogram-core (contributor). Skills ship from GitHub, not npm.
Contributing
See CONTRIBUTING.md.
Questions fréquentes
Qu'est-ce que Remogram ?
SCM & forge boundary MCP: normalized, typed JSON from attributed Gitea, GitLab, and GitHub providers
Comment installer Remogram ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add remogram -e 'GITHUB_TOKEN=<your github_token>' -e 'GH_TOKEN=<your gh_token>' -e 'GITLAB_TOKEN=<your gitlab_token>' -e 'GITEA_TOKEN=<your gitea_token>' -e 'REMOGRAM_CWD=<REMOGRAM_CWD>' -e 'REMOGRAM_OPERATOR_CONFIG=<REMOGRAM_OPERATOR_CONFIG>' -- npx -y @remogram/mcp@0.2.0-beta.4. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour Remogram ?
Oui. Il attend GITHUB_TOKEN, GH_TOKEN, GITLAB_TOKEN, GITEA_TOKEN, à renseigner dans sa configuration.
Remogram est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient Remogram ?
Il est publié par attebury. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.