Interop

by yigitozgumus

6 358 downloads Not rated yet MIT

About

Interop CLI: Go command-line tool for efficient project management and command execution across your development workspace.

Details

License
MIT

Explore

- Project Management: Track and validate multiple project directories
- Command Execution: Run commands with project context and arguments
- Dynamic Command Loading: Load commands from multiple directories with precedence rules
- Remote Configuration System: Fetch and sync configurations from Git repositories with conflict resolution
- AI Integration: Multiple MCP servers to expose commands to AI assistants with enhanced metadata
- Configuration Management: TOML-based configuration with validation and conflict detection
- Cross-Platform Support: Works on Linux, macOS, and Windows

- Required: Mark arguments that must be provided
- Default Values: Set fallback values for optional arguments
- Descriptions: Document the purpose of each argument
- Prefix: Specify command-line flags to use for arguments (e.g., --key)

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Interop
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Interop uses a TOML configuration file at ~/.config/interop/settings.toml. To edit it:

interop edit

[mcp_servers.domain1]
name = "domain1"
description = "Domain-specific commands"
port = 8082

[mcp_servers.domain2]
name = "domain2"
description = "Another domain for commands"
port = 8083

Each project includes:
- Path: Directory location (validated for existence)
- Description: Optional project description
- Commands: List of commands with optional aliases

Interop supports loading configuration definitions from multiple directories, enabling better organization and scalability for large configuration collections.

Each directory can contain multiple *.toml files with configuration definitions:


~/.config/interop/config.d/
├── git-commands.toml
├── docker-commands.toml
├── dev-projects.toml
└── ai-prompts.toml

Example git-commands.toml:

toml
[commands.git-status]
cmd = "git status"
description = "Show the working tree status"
version = "1.0.0"
is_enabled = true
mcp = "dev-tools"

[commands.git-pull]
cmd = "git pull --rebase"
description = "Fetch from and integrate with another repository"
version = "1.0.0"
is_enabled = true
mcp = "dev-tools"


Example dev-projects.toml:

toml
[projects.my-api]
path = "~/projects/my-api"
description = "Main API project"
commands = [
{ command_name = "build", alias = "b" },
{ command_name = "test", alias = "t" }
]

Interop includes a powerful remote configuration system that allows you to fetch and manage configurations from Git repositories. This enables teams to share command definitions, maintain centralized configuration libraries, and keep local setups synchronized with remote sources.

bash

interop config remote fetch

interop config remote clear


config.d/team-commands.toml:
toml
[commands.team-deploy]
cmd = "deploy.sh"
description = "Deploy using team standards"
is_executable = true
mcp = "team-tools"
version = "2.1.0"
arguments = [
{ name = "environment", type = "string", required = true, description = "Target environment" },
{ name = "force", type = "bool", default = false, description = "Force deployment" }
]

[commands.team-test]
cmd = "run-team-tests.sh"
description = "Run standardized team tests"
is_executable = true
mcp = "team-tools"

[mcp_servers.team-tools]
name = "team-tools"
description = "Team standardized tools"
port = 8084


interop config remote add company-standards [email protected]:company/interop-standards.git
interop config remote fetch

bash

interop config remote add prod-tools [email protected]:company/prod-tools.git
interop config remote add dev-tools [email protected]:company/dev-tools.git

interop config remote fetch prod-tools
interop config remote fetch dev-tools


interop mcp export # Export JSON configuration

Provide concrete examples of how to use commands:

[commands.create-component]
cmd = "generate.sh ${type} ${name}"
description = "Generate a new component"
version = "1.0.0"
arguments = [
  { name = "type", type = "string", description = "Component type", required = true },
  { name = "name", type = "string", description = "Component name", required = true }
]
examples = [
  {
    description = "Create a React component",
    command = "interop run create-component type=react name=Button"
  },
  {
    description = "Create a Vue component", 
    command = "interop run create-component type=vue name=Header"
  }
]
interop validate

The validation system provides comprehensive analysis of your configuration:

- Main Settings: Validates settings.toml exists and is accessible
- Local Directories: Shows file counts and accessibility of config.d/
- Remote Directories: Shows status of config.d.remote/ and executables.remote/
- Remote Tracking: Indicates if remote version tracking is active


interop config remote fetch                    # Fetch from all remotes
interop config remote fetch <name>             # Fetch from specific remote

bash
~/.config/interop/settings.toml # Main configuration file
~/.config/interop/config.d/ # Local configuration directory
~/.config/interop/config.d.remote/ # Remote configurations (auto-managed)
~/.config/interop/executables/ # Local executable files
~/.config/interop/executables.remote/ # Remote executables (auto-managed)
~/.config/interop/versions.toml # Remote tracking metadata (auto-managed)
```

interop config remote fetch prod-tools
interop config remote fetch dev-tools


interop config remote add awesome-dev-tools https://github.com/community/awesome-dev-tools.git
interop config remote fetch

interop mcp export # Export JSON configuration
```

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "interop": {
            "interop": {
                "command": "python3",
                "args": [
                    "scripts/update_strings.py",
                    "--keys",
                    "key1",
                    "key2",
                    "--language",
                    "en",
                    "--verbose"
                ]
            }
        }
    }
}

McpServers

{
    "interop": {
        "command": "python3",
        "args": [
            "scripts/update_strings.py",
            "--keys",
            "key1",
            "key2",
            "--language",
            "en",
            "--verbose"
        ]
    }
}

Interop is a powerful command-line interface tool designed to improve developer productivity by providing a unified interface for managing projects, executing commands, and integrating with AI assistants.

What is Interop?

Interop serves as a bridge between your development projects, custom commands, and AI assistants. It allows you to:

- Organize multiple projects with metadata, commands, and validation
- Define and execute commands with project context awareness
- Configure multiple MCP (Model Context Protocol) servers for AI integration
- Streamline repetitive development tasks across different domains

Core Features

- Project Management: Track and validate multiple project directories
- Command Execution: Run commands with project context and arguments
- Dynamic Command Loading: Load commands from multiple directories with precedence rules
- Remote Configuration System: Fetch and sync configurations from Git repositories with conflict resolution
- AI Integration: Multiple MCP servers to expose commands to AI assistants with enhanced metadata
- Configuration Management: TOML-based configuration with validation and conflict detection
- Cross-Platform Support: Works on Linux, macOS, and Windows

Installation

Using Homebrew (macOS/Linux)

brew install yigitozgumus/formulae/interop

Building from Source

1. Clone the repository:

git clone https://github.com/yigitozgumus/interop.git
cd interop

2. Build the project:

go build -o interop ./cmd/cli

Configuration

Interop uses a TOML configuration file at ~/.config/interop/settings.toml. To edit it:

interop edit

Configuration Structure

```toml

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.