Metadata-Version: 2.4
Name: micro-cc
Version: 0.2.42
Summary: Harness that gives frontier models full system access — shell, filesystem, browser, MCP — running directly on the metal.
Author: George Salapa
License: Copyright (c) 2026 George Salapa. All rights reserved.
        
        This software and associated source code ("Software") are proprietary and
        confidential. No license, express or implied, is granted to any person
        obtaining a copy of the Software.
        
        Permission to install and run the Software via its published package
        (e.g. from PyPI) for personal or internal business use is granted, provided
        that this permission does not extend to copying, modifying, merging,
        publishing, distributing, sublicensing, forking, decompiling, reverse
        engineering, or creating derivative works of the Software, in whole or in
        part, without prior written permission from the copyright holder.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR
        OTHER LIABILITY ARISING FROM THE USE OF THE SOFTWARE.
        
        Interested in collaborating? george@salapa.xyz
        
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: anthropic>=0.76.0
Requires-Dist: anyio>=4.0
Requires-Dist: beautifulsoup4>=4.14
Requires-Dist: fastapi>=0.135
Requires-Dist: google-search-results>=2.4
Requires-Dist: httpx>=0.28
Requires-Dist: httpx-sse>=0.4
Requires-Dist: lxml>=6.0
Requires-Dist: mammoth>=1.11
Requires-Dist: markdown-it-py>=4.0
Requires-Dist: markdownify>=1.2
Requires-Dist: mcp>=1.26
Requires-Dist: numpy>=2.4
Requires-Dist: openai>=2.16
Requires-Dist: openpyxl>=3.1
Requires-Dist: pathvalidate>=3.3
Requires-Dist: pdfminer.six>=20260107
Requires-Dist: pillow>=12.0
Requires-Dist: playwright>=1.58
Requires-Dist: prompt_toolkit>=3.0
Requires-Dist: puremagic>=1.30
Requires-Dist: PyAutoGUI>=0.9
Requires-Dist: pydantic>=2.12
Requires-Dist: pydantic-settings>=2.13
Requires-Dist: pyperclip>=1.9
Requires-Dist: python-dotenv>=1.2
Requires-Dist: python-pptx>=1.0
Requires-Dist: requests>=2.32
Requires-Dist: rich>=14.0
Requires-Dist: textual>=8.0
Requires-Dist: tiktoken>=0.12
Requires-Dist: uvicorn>=0.42
Requires-Dist: watchdog>=6.0
Requires-Dist: xlsxwriter>=3.2
Requires-Dist: youtube-transcript-api>=1.2
Dynamic: license-file

# micro · cc — cognitive compute

```
                   88
                   ""

88,dPYba,,adPYba,  88  ,adPPYba, 8b,dPPYba,  ,adPPYba,     ,adPPYba,  ,adPPYba,
88P'   "88"    "8a 88 a8"     "" 88P'   "Y8 a8"     "8a   a8"     "" a8"     ""
88      88      88 88 8b         88         8b       d8 · 8b         8b
88      88      88 88 "8a,   ,aa 88         "8a,   ,a8"   "8a,   ,aa "8a,   ,aa
88      88      88 88  `"Ybbd8"' 88          `"YbbdP"'     `"Ybbd8"'  `"Ybbd8"'
```

> Knowledge work is, by extension, a coding problem.

Frontier models with full system access — shell, filesystem, browser, MCP. Verbose, thorough planning paired with unrestricted file operations lets micro·cc take on complex multi-step work autonomously. Point it at any project directory and go.

## Install

```bash
pip install micro-cc
```

Cross-platform — macOS, Linux, Windows — with terminal keybindings (Shift+Enter, word-jump, etc.) detected and configured automatically on first run, whatever terminal you're in.

## Usage

```bash
microcc /path/to/your/project
```

First run, type `/login` and pick Anthropic, a LiteLLM proxy (Bedrock, Azure, etc.), or Ollama — it writes `~/.micro-cc/.env` for you, no manual editing needed.

**Controls:**
- `Enter` — submit · `Shift+Enter` — newline · `Escape` — interrupt
- `/login` — configure endpoint · `/model` — switch model · `/clear` — reset conversation · `/keys` — store project-scoped secrets · `/exit` — quit
- Type `/` to see the full command list (setup, skills, MCP, headless, etc.)

## Headless (batch / cron)

```bash
microcc-headless /path/to/base_dir tasks.json
```

Each task gets its own subfolder under `base_dir` — `base_dir/{task.name}/` — which is a real `project_dir` with its own scoped `messages.jsonl`. Runs are fully autonomous (no approval gate), so a batch never blocks waiting on stdin. To pick a task back up in the full interactive TUI:

```bash
cd base_dir/{task.name} && microcc .
```

**Manifest format** (`tasks.json`):

```json
{
  "tasks": [
    {
      "name": "fix-auth-bug",
      "prompt": "Fix the JWT expiry bug — tokens aren't refreshing correctly.",
      "files": ["/absolute/path/to/src/auth.py", "/absolute/path/to/src/middleware.py"]
    },
    {
      "name": "add-tests",
      "prompt": "Add unit tests for the pagination helper."
    }
  ]
}
```

`files` is optional and must use **absolute paths** — cron jobs have no reliable cwd.

Tasks run sequentially. Each is instructed to end its final reply with `STATUS: DONE|NEEDS_INPUT|FAILED — <summary>`, which the runner parses into a tree view at the end:

```
/path/to/base_dir
├── ✓ fix-auth-bug         DONE         Patched JWT expiry check in auth.py
├── ? add-tests            NEEDS_INPUT  Which test framework does this repo use?
└── ✓ cleanup-logs         DONE         Removed dead logging branches

2/3 done · 1 need input · 0 failed
cd into: /path/to/base_dir/add-tests  (then `microcc .` to continue)
```

Only tasks that failed or need input get a `cd` hint — no need to open every subfolder to check on a large batch.

## Data

```
~/.micro-cc/
  .env                              API keys
  projects/
    {project}_{hash}/
      messages.jsonl                conversation history
      summary.json                  sliding-window summary
      project_path.txt              maps hash back to directory
```

## Tools

| Tool | Description |
|------|-------------|
| `bash_` | Shell execution in project_dir |
| `read_` | Read files with line numbers, offset/limit |
| `write_` | Create/overwrite files, auto-creates dirs |
| `edit_` | Surgical string replacement (fails if ambiguous) |
| `glob_` | Find files by pattern, sorted by mtime |
| `grep_` | Regex search with context lines |
| `browser_` | Web browsing and page extraction (beta) |
| `computer_use_` | Screen interaction and GUI automation (beta) |

All tools are discoverable — use `search_tools` to find more at runtime.

Relative paths resolve to `project_dir`. Absolute paths work anywhere.

## License

Proprietary — all rights reserved. See [LICENSE](LICENSE).
