OpenWatch
Every answer shows its source
Each event keeps the file and byte offset it was read from, so an answer can be traced to the exact line.
How it works
Each tool is an MCP server that runs on your machine. Add it to your AI app's config, and the AI can read and write through it, with every answer tied to its source.
Three steps
{
"mcpServers": {
"opencrm": {
"command": "/path/to/open-crm/node_modules/.bin/tsx",
"args": [
"/path/to/open-crm/src/mcp.ts"
],
"env": {
"CRM_DB_PATH": "/path/to/open-crm/data/crm.db"
}
},
"openledger": {
"command": "/path/to/open-ledger/.venv/bin/python",
"args": [
"/path/to/open-ledger/run_mcp.py"
]
}
}
}~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows · Replace /path/to with where you cloned each repository.
Questions you can ask with this setup
Install
$ git clone https://github.com/Attri-Inc/open-crm.git
$ cd open-crm
$ npm install
$ cp .env.example .env
$ npm run seed$ git clone https://github.com/Attri-Inc/open-ledger.git
$ cd open-ledger
$ python3 -m venv .venv && source .venv/bin/activate
$ pip install -r requirements.txt
$ python scripts/seed.py$ git clone https://github.com/Attri-Inc/openwatch.git
$ cd openwatch
$ python -m venv .venv && source .venv/bin/activate
$ pip install -e ".[dev]"
$ cp .env.example .env
$ python scripts/seed.pyConnect
Config locations from each vendor's documentation, checked 24 September 2026.
Guarantees
OpenWatch
Each event keeps the file and byte offset it was read from, so an answer can be traced to the exact line.
OpenCRM
When two sources disagree, OpenCRM opens a conflict and keeps both. A person resolves it, not the newest write.
Posted · balanced · audited
Refused: A transaction needs at least 2 entry lines
OpenLedger
Every posting is checked before it lands. One that fails is refused with the reason, and nothing is written.
OpenLedger
Corrections are new records. A mistaken transaction is reversed, and the original stays where it was.
All three
56 tools between them, each named for what it does.
All three
Each tool keeps its data in a SQLite file wherever you run it. No database server, no vendor cloud.
All three
Includes a patent grant. No copyleft terms for a procurement team to clear.
Together
Example questions. The tool names are real; the answers depend on your data.
“Which renewals have an open conflict, and has their revenue been posted?”
Your AI calls
“What did the team spend on Claude last month, and is it booked?”
Your AI calls
“Which Claude sessions this week mentioned this account?”
Your AI calls
“Before the renewal call: what's disputed, what's been paid, and who has been working on it?”
Your AI calls
Clone it from GitHub and add it to your MCP client. When your team needs it hosted, with login, talk to Attri.