agnt 0.7.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
agnt-0.7.6/.gitignore ADDED
@@ -0,0 +1,51 @@
1
+ # Binaries (root level only, not cmd/devtool-mcp/)
2
+ /devtool-mcp
3
+ *.exe
4
+ *.dll
5
+ *.so
6
+ *.dylib
7
+
8
+ # Test binary, built with `go test -c`
9
+ *.test
10
+
11
+ # Output of the go coverage tool
12
+ *.out
13
+ coverage.html
14
+
15
+ # Go workspace file
16
+ go.work
17
+
18
+ # IDE
19
+ .idea/
20
+ .vscode/
21
+ *.swp
22
+ *.swo
23
+
24
+ # OS
25
+ .DS_Store
26
+ Thumbs.db
27
+
28
+ # Documentation build
29
+ docs-site/node_modules/
30
+ docs-site/build/
31
+ docs-site/.docusaurus/
32
+
33
+ # Environment
34
+ .env
35
+ .env.local
36
+
37
+ # npm package
38
+ node_modules/
39
+ bin/devtool-mcp
40
+ bin/devtool-mcp.exe
41
+ dist/
42
+ *.tgz
43
+
44
+ # Python package
45
+ python/dist/
46
+ python/build/
47
+ python/*.egg-info/
48
+ __pycache__/
49
+ *.pyc
50
+ .venv/
51
+ .mcpregistry_*
agnt-0.7.6/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Standard Beagle
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
agnt-0.7.6/PKG-INFO ADDED
@@ -0,0 +1,187 @@
1
+ Metadata-Version: 2.4
2
+ Name: agnt
3
+ Version: 0.7.6
4
+ Summary: MCP server for AI coding agents - process management, reverse proxy with traffic logging, browser instrumentation, and sketch mode
5
+ Project-URL: Homepage, https://standardbeagle.github.io/agnt/
6
+ Project-URL: Documentation, https://standardbeagle.github.io/agnt/
7
+ Project-URL: Repository, https://github.com/standardbeagle/agnt
8
+ Project-URL: Issues, https://github.com/standardbeagle/agnt/issues
9
+ Project-URL: Changelog, https://github.com/standardbeagle/agnt/blob/main/CHANGELOG.md
10
+ Author-email: Standard Beagle <dev@standardbeagle.com>
11
+ License-Expression: MIT
12
+ License-File: LICENSE
13
+ Keywords: agent,ai,claude-code,debugging,development,devtools,diagnostics,frontend,mcp,model-context-protocol,process-management,proxy,sketch,wireframe
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: MacOS
19
+ Classifier: Operating System :: Microsoft :: Windows
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Topic :: Internet :: Proxy Servers
26
+ Classifier: Topic :: Software Development :: Debuggers
27
+ Classifier: Topic :: Software Development :: Testing
28
+ Requires-Python: >=3.10
29
+ Requires-Dist: httpx>=0.25.0
30
+ Description-Content-Type: text/markdown
31
+
32
+ # agnt
33
+
34
+ **Give your AI coding agent browser superpowers.**
35
+
36
+ agnt is a new kind of tool designed for the age of AI-assisted development. It acts as a bridge between your AI coding agent and the browser, extending what's possible during vibe coding sessions.
37
+
38
+ ## What Does It Do?
39
+
40
+ When you're in the flow with Claude Code, Cursor, or other AI tools, agnt lets your agent:
41
+
42
+ - **See what you see** - Screenshots, DOM inspection, visual debugging
43
+ - **Hear from you directly** - Send messages from browser to agent
44
+ - **Sketch ideas together** - Draw wireframes directly on your UI
45
+ - **Debug in real-time** - Capture errors, network traffic, performance
46
+ - **Extend its thinking window** - Structured data uses fewer tokens than descriptions
47
+
48
+ ## Installation
49
+
50
+ ```bash
51
+ pip install agnt
52
+ # or
53
+ uv pip install agnt
54
+ # or
55
+ pipx install agnt
56
+ ```
57
+
58
+ ## Quick Start
59
+
60
+ ### As MCP Server (Claude Code, Cursor, etc.)
61
+
62
+ Add to your MCP configuration:
63
+
64
+ ```json
65
+ {
66
+ "mcpServers": {
67
+ "agnt": {
68
+ "command": "agnt",
69
+ "args": ["serve"]
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ Or with uvx:
76
+
77
+ ```json
78
+ {
79
+ "mcpServers": {
80
+ "agnt": {
81
+ "command": "uvx",
82
+ "args": ["agnt", "serve"]
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ ### As PTY Wrapper
89
+
90
+ Wrap your AI coding tool with overlay features:
91
+
92
+ ```bash
93
+ agnt run claude --dangerously-skip-permissions
94
+ agnt run cursor
95
+ agnt run aider
96
+ ```
97
+
98
+ This adds a terminal overlay menu (Ctrl+P) and enables browser-to-terminal messaging.
99
+
100
+ ## Core Features
101
+
102
+ ### Browser Superpowers
103
+
104
+ Start a proxy and your agent gains eyes into the browser:
105
+
106
+ ```
107
+ proxy {action: "start", id: "app", target_url: "http://localhost:3000"}
108
+ ```
109
+
110
+ Now your agent can:
111
+ - Take screenshots
112
+ - Inspect any element
113
+ - Audit accessibility
114
+ - See what you clicked
115
+
116
+ ### Floating Indicator
117
+
118
+ Every proxied page gets a floating bug icon. Click to:
119
+ - Send messages to your agent
120
+ - Take area screenshots
121
+ - Select elements to log
122
+ - Open sketch mode
123
+
124
+ ### Sketch Mode
125
+
126
+ Draw directly on your UI:
127
+ - Shapes: rectangles, circles, arrows, freehand
128
+ - Wireframes: buttons, inputs, sticky notes
129
+ - Save and send to agent instantly
130
+
131
+ ### Real-Time Error Capture
132
+
133
+ JavaScript errors automatically captured and available to your agent - no more forgetting to mention them.
134
+
135
+ ## MCP Tools
136
+
137
+ | Tool | Description |
138
+ |------|-------------|
139
+ | `detect` | Auto-detect project type and scripts |
140
+ | `run` | Run scripts or commands |
141
+ | `proc` | Manage processes |
142
+ | `proxy` | Reverse proxy with instrumentation |
143
+ | `proxylog` | Query traffic logs |
144
+ | `currentpage` | View page sessions |
145
+ | `daemon` | Manage background service |
146
+
147
+ ## Browser API
148
+
149
+ The proxy injects `window.__devtool` with 50+ diagnostic functions:
150
+
151
+ ```javascript
152
+ __devtool.screenshot('name') // Capture screenshot
153
+ __devtool.inspect('#element') // Full element analysis
154
+ __devtool.auditAccessibility() // A11y audit
155
+ __devtool.sketch.open() // Enter sketch mode
156
+ __devtool.interactions.getLastClick() // Last click details
157
+ ```
158
+
159
+ ## Configuration
160
+
161
+ Create `.agnt.kdl` in your project:
162
+
163
+ ```kdl
164
+ scripts {
165
+ dev {
166
+ command "npm"
167
+ args "run" "dev"
168
+ autostart true
169
+ }
170
+ }
171
+
172
+ proxies {
173
+ frontend {
174
+ target "http://localhost:3000"
175
+ autostart true
176
+ }
177
+ }
178
+ ```
179
+
180
+ ## Documentation
181
+
182
+ - [GitHub](https://github.com/standardbeagle/agnt)
183
+ - [Full Docs](https://standardbeagle.github.io/agnt/)
184
+
185
+ ## License
186
+
187
+ MIT
agnt-0.7.6/README.md ADDED
@@ -0,0 +1,156 @@
1
+ # agnt
2
+
3
+ **Give your AI coding agent browser superpowers.**
4
+
5
+ agnt is a new kind of tool designed for the age of AI-assisted development. It acts as a bridge between your AI coding agent and the browser, extending what's possible during vibe coding sessions.
6
+
7
+ ## What Does It Do?
8
+
9
+ When you're in the flow with Claude Code, Cursor, or other AI tools, agnt lets your agent:
10
+
11
+ - **See what you see** - Screenshots, DOM inspection, visual debugging
12
+ - **Hear from you directly** - Send messages from browser to agent
13
+ - **Sketch ideas together** - Draw wireframes directly on your UI
14
+ - **Debug in real-time** - Capture errors, network traffic, performance
15
+ - **Extend its thinking window** - Structured data uses fewer tokens than descriptions
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ pip install agnt
21
+ # or
22
+ uv pip install agnt
23
+ # or
24
+ pipx install agnt
25
+ ```
26
+
27
+ ## Quick Start
28
+
29
+ ### As MCP Server (Claude Code, Cursor, etc.)
30
+
31
+ Add to your MCP configuration:
32
+
33
+ ```json
34
+ {
35
+ "mcpServers": {
36
+ "agnt": {
37
+ "command": "agnt",
38
+ "args": ["serve"]
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ Or with uvx:
45
+
46
+ ```json
47
+ {
48
+ "mcpServers": {
49
+ "agnt": {
50
+ "command": "uvx",
51
+ "args": ["agnt", "serve"]
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
57
+ ### As PTY Wrapper
58
+
59
+ Wrap your AI coding tool with overlay features:
60
+
61
+ ```bash
62
+ agnt run claude --dangerously-skip-permissions
63
+ agnt run cursor
64
+ agnt run aider
65
+ ```
66
+
67
+ This adds a terminal overlay menu (Ctrl+P) and enables browser-to-terminal messaging.
68
+
69
+ ## Core Features
70
+
71
+ ### Browser Superpowers
72
+
73
+ Start a proxy and your agent gains eyes into the browser:
74
+
75
+ ```
76
+ proxy {action: "start", id: "app", target_url: "http://localhost:3000"}
77
+ ```
78
+
79
+ Now your agent can:
80
+ - Take screenshots
81
+ - Inspect any element
82
+ - Audit accessibility
83
+ - See what you clicked
84
+
85
+ ### Floating Indicator
86
+
87
+ Every proxied page gets a floating bug icon. Click to:
88
+ - Send messages to your agent
89
+ - Take area screenshots
90
+ - Select elements to log
91
+ - Open sketch mode
92
+
93
+ ### Sketch Mode
94
+
95
+ Draw directly on your UI:
96
+ - Shapes: rectangles, circles, arrows, freehand
97
+ - Wireframes: buttons, inputs, sticky notes
98
+ - Save and send to agent instantly
99
+
100
+ ### Real-Time Error Capture
101
+
102
+ JavaScript errors automatically captured and available to your agent - no more forgetting to mention them.
103
+
104
+ ## MCP Tools
105
+
106
+ | Tool | Description |
107
+ |------|-------------|
108
+ | `detect` | Auto-detect project type and scripts |
109
+ | `run` | Run scripts or commands |
110
+ | `proc` | Manage processes |
111
+ | `proxy` | Reverse proxy with instrumentation |
112
+ | `proxylog` | Query traffic logs |
113
+ | `currentpage` | View page sessions |
114
+ | `daemon` | Manage background service |
115
+
116
+ ## Browser API
117
+
118
+ The proxy injects `window.__devtool` with 50+ diagnostic functions:
119
+
120
+ ```javascript
121
+ __devtool.screenshot('name') // Capture screenshot
122
+ __devtool.inspect('#element') // Full element analysis
123
+ __devtool.auditAccessibility() // A11y audit
124
+ __devtool.sketch.open() // Enter sketch mode
125
+ __devtool.interactions.getLastClick() // Last click details
126
+ ```
127
+
128
+ ## Configuration
129
+
130
+ Create `.agnt.kdl` in your project:
131
+
132
+ ```kdl
133
+ scripts {
134
+ dev {
135
+ command "npm"
136
+ args "run" "dev"
137
+ autostart true
138
+ }
139
+ }
140
+
141
+ proxies {
142
+ frontend {
143
+ target "http://localhost:3000"
144
+ autostart true
145
+ }
146
+ }
147
+ ```
148
+
149
+ ## Documentation
150
+
151
+ - [GitHub](https://github.com/standardbeagle/agnt)
152
+ - [Full Docs](https://standardbeagle.github.io/agnt/)
153
+
154
+ ## License
155
+
156
+ MIT
@@ -0,0 +1,69 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "agnt"
7
+ version = "0.7.6"
8
+ description = "MCP server for AI coding agents - process management, reverse proxy with traffic logging, browser instrumentation, and sketch mode"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ { name = "Standard Beagle", email = "dev@standardbeagle.com" }
14
+ ]
15
+ keywords = [
16
+ "mcp",
17
+ "model-context-protocol",
18
+ "ai",
19
+ "agent",
20
+ "development",
21
+ "devtools",
22
+ "proxy",
23
+ "debugging",
24
+ "frontend",
25
+ "diagnostics",
26
+ "sketch",
27
+ "wireframe",
28
+ "process-management",
29
+ "claude-code"
30
+ ]
31
+ classifiers = [
32
+ "Development Status :: 4 - Beta",
33
+ "Environment :: Console",
34
+ "Intended Audience :: Developers",
35
+ "License :: OSI Approved :: MIT License",
36
+ "Operating System :: MacOS",
37
+ "Operating System :: Microsoft :: Windows",
38
+ "Operating System :: POSIX :: Linux",
39
+ "Programming Language :: Python :: 3",
40
+ "Programming Language :: Python :: 3.10",
41
+ "Programming Language :: Python :: 3.11",
42
+ "Programming Language :: Python :: 3.12",
43
+ "Topic :: Software Development :: Debuggers",
44
+ "Topic :: Software Development :: Testing",
45
+ "Topic :: Internet :: Proxy Servers",
46
+ ]
47
+ dependencies = [
48
+ "httpx>=0.25.0",
49
+ ]
50
+
51
+ [project.urls]
52
+ Homepage = "https://standardbeagle.github.io/agnt/"
53
+ Documentation = "https://standardbeagle.github.io/agnt/"
54
+ Repository = "https://github.com/standardbeagle/agnt"
55
+ Issues = "https://github.com/standardbeagle/agnt/issues"
56
+ Changelog = "https://github.com/standardbeagle/agnt/blob/main/CHANGELOG.md"
57
+
58
+ [project.scripts]
59
+ agnt = "agnt:main"
60
+
61
+ [tool.hatch.build.targets.wheel]
62
+ packages = ["src/agnt"]
63
+
64
+ [tool.hatch.build.targets.sdist]
65
+ include = [
66
+ "/src",
67
+ "/README.md",
68
+ "/LICENSE",
69
+ ]
@@ -0,0 +1,174 @@
1
+ """
2
+ agnt - MCP server for AI coding agents
3
+
4
+ This package provides the agnt binary for use as an MCP server,
5
+ offering process management, reverse proxy with traffic logging,
6
+ browser instrumentation, and sketch mode.
7
+
8
+ Usage:
9
+ Add to your MCP client configuration:
10
+ {
11
+ "mcpServers": {
12
+ "agnt": {
13
+ "command": "agnt",
14
+ "args": ["serve"]
15
+ }
16
+ }
17
+ }
18
+
19
+ Or run with PTY wrapper:
20
+ agnt run claude --dangerously-skip-permissions
21
+
22
+ For more information, see:
23
+ https://standardbeagle.github.io/agnt/
24
+ """
25
+
26
+ __version__ = "0.7.6"
27
+ __all__ = ["main", "get_binary_path", "run"]
28
+
29
+ import os
30
+ import platform
31
+ import stat
32
+ import subprocess
33
+ import sys
34
+ import tempfile
35
+ from pathlib import Path
36
+ from typing import Optional
37
+
38
+ import httpx
39
+
40
+ REPO = "standardbeagle/agnt"
41
+ VERSION = __version__
42
+ BINARY_NAME = "agnt"
43
+
44
+
45
+ def get_platform() -> str:
46
+ """Get the platform name for download."""
47
+ system = platform.system().lower()
48
+ if system == "darwin":
49
+ return "darwin"
50
+ elif system == "linux":
51
+ return "linux"
52
+ elif system == "windows":
53
+ return "windows"
54
+ else:
55
+ raise RuntimeError(f"Unsupported platform: {system}")
56
+
57
+
58
+ def get_arch() -> str:
59
+ """Get the architecture name for download."""
60
+ machine = platform.machine().lower()
61
+ if machine in ("x86_64", "amd64"):
62
+ return "amd64"
63
+ elif machine in ("arm64", "aarch64"):
64
+ return "arm64"
65
+ else:
66
+ raise RuntimeError(f"Unsupported architecture: {machine}")
67
+
68
+
69
+ def get_binary_name() -> str:
70
+ """Get the binary name for the current platform."""
71
+ if platform.system().lower() == "windows":
72
+ return f"{BINARY_NAME}.exe"
73
+ return BINARY_NAME
74
+
75
+
76
+ def get_cache_dir() -> Path:
77
+ """Get the cache directory for storing the binary."""
78
+ if platform.system().lower() == "windows":
79
+ base = Path(os.environ.get("LOCALAPPDATA", Path.home() / "AppData" / "Local"))
80
+ elif platform.system().lower() == "darwin":
81
+ base = Path.home() / "Library" / "Caches"
82
+ else:
83
+ base = Path(os.environ.get("XDG_CACHE_HOME", Path.home() / ".cache"))
84
+
85
+ cache_dir = base / "agnt" / VERSION
86
+ cache_dir.mkdir(parents=True, exist_ok=True)
87
+ return cache_dir
88
+
89
+
90
+ def get_download_url() -> str:
91
+ """Get the download URL for the binary."""
92
+ plat = get_platform()
93
+ arch = get_arch()
94
+ ext = ".exe" if plat == "windows" else ""
95
+ return f"https://github.com/{REPO}/releases/download/v{VERSION}/{BINARY_NAME}-{plat}-{arch}{ext}"
96
+
97
+
98
+ def get_binary_path() -> Path:
99
+ """Get the path to the agnt binary, downloading if necessary."""
100
+ cache_dir = get_cache_dir()
101
+ binary_path = cache_dir / get_binary_name()
102
+
103
+ if binary_path.exists():
104
+ return binary_path
105
+
106
+ # Download the binary
107
+ url = get_download_url()
108
+ print(f"Downloading agnt v{VERSION}...", file=sys.stderr)
109
+ print(f" Platform: {get_platform()}", file=sys.stderr)
110
+ print(f" Architecture: {get_arch()}", file=sys.stderr)
111
+
112
+ try:
113
+ with httpx.Client(follow_redirects=True, timeout=60.0) as client:
114
+ response = client.get(url)
115
+ response.raise_for_status()
116
+
117
+ # Write to temp file first, then move
118
+ with tempfile.NamedTemporaryFile(
119
+ delete=False, dir=cache_dir, suffix=".tmp"
120
+ ) as tmp:
121
+ tmp.write(response.content)
122
+ tmp_path = Path(tmp.name)
123
+
124
+ # Move to final location
125
+ tmp_path.rename(binary_path)
126
+
127
+ # Make executable on Unix
128
+ if platform.system().lower() != "windows":
129
+ binary_path.chmod(binary_path.stat().st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
130
+
131
+ print(f"Successfully installed agnt to {binary_path}", file=sys.stderr)
132
+
133
+ except httpx.HTTPError as e:
134
+ print(f"Failed to download agnt: {e}", file=sys.stderr)
135
+ print("", file=sys.stderr)
136
+ print("You can manually download the binary from:", file=sys.stderr)
137
+ print(f" https://github.com/{REPO}/releases/tag/v{VERSION}", file=sys.stderr)
138
+ print("", file=sys.stderr)
139
+ print("Or build from source:", file=sys.stderr)
140
+ print(" git clone https://github.com/standardbeagle/agnt.git", file=sys.stderr)
141
+ print(" cd agnt", file=sys.stderr)
142
+ print(" make build", file=sys.stderr)
143
+ sys.exit(1)
144
+
145
+ return binary_path
146
+
147
+
148
+ def run(args: Optional[list[str]] = None) -> subprocess.CompletedProcess:
149
+ """Run agnt with the given arguments."""
150
+ binary_path = get_binary_path()
151
+ return subprocess.run([str(binary_path)] + (args or []))
152
+
153
+
154
+ def main() -> None:
155
+ """Entry point for the agnt command."""
156
+ binary_path = get_binary_path()
157
+ try:
158
+ # Replace current process with the binary
159
+ if platform.system().lower() == "windows":
160
+ # Windows doesn't support exec, so use subprocess
161
+ result = subprocess.run([str(binary_path)] + sys.argv[1:])
162
+ sys.exit(result.returncode)
163
+ else:
164
+ os.execv(str(binary_path), [str(binary_path)] + sys.argv[1:])
165
+ except FileNotFoundError:
166
+ print(f"Error: Binary not found at {binary_path}", file=sys.stderr)
167
+ sys.exit(1)
168
+ except PermissionError:
169
+ print(f"Error: Binary at {binary_path} is not executable", file=sys.stderr)
170
+ sys.exit(1)
171
+
172
+
173
+ if __name__ == "__main__":
174
+ main()