robodogcli


Namerobodogcli JSON
Version 2.6.15 PyPI version JSON
download
home_pageNone
SummaryRobodog
upload_time2025-09-01 14:30:23
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords robot dog automation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # file: README.md
![Robodog MCP File Service](screenshot-mcp.png)

## Overview  
Robodog is a lightweight, zero-install, command-line style generative AI client that integrates multiple providers (OpenAI, OpenRouter, LlamaAI, DeepSeek, Anthropic, Sarvam AI, Google Search API, and more) into a unified interface. Key capabilities include:

- Access to cutting-edge models: `o4-mini` (200k context), `gpt-4`, `gpt-4-turbo`, `dall-e-3`, Llama3-70b, Claude Opus/Sonnet, Mistral, Sarvam-M, Gemma 3n, etc.  
- Massive context windows (up to 200k tokens) across different models.  
- Seamless chat history & knowledge management with stashes and snapshots.  
- File import/export (text, Markdown, code, PDF, images via OCR).  
- In-chat file inclusion from a local MCP server.  
- Built-in web search integration.  
- Image generation & OCR pipelines.  
- AI-driven web automation/testing via Playwright (`/play`).  
- Raw MCP operations (`/mcp`).  
- `/todo` feature: automate and track tasks defined in `todo.md`.  
- Accessible, retro β€œconsole” UI with customizable themes and responsive design.  

---

## Try Robodog  

- **Web**: https://adourish.github.io/robodog/robodog/dist/  
- **Android**: https://play.google.com/store/apps/details?id=com.unclebulgaria.robodog  
- **npm packages**:  
  - `npm install robodoglib`  
  - `npm install robodogcli`  
  - `npm install robodog`  
- **Python**:  
  - `pip install robodogcli`  
  - `pip show -f robodogcli`  
  - `python -m robodogcli.cli --help`  
  - `pip install --upgrade requests tiktoken PyYAML openai playwright pydantic langchain` (optional)  

---

## Configuration  

Click the βš™οΈ icon in the top-menu to open settings, or edit your YAML directly:

```yaml
configs:
  providers:
    - provider: openAI
      baseUrl: "https://api.openai.com"
      apiKey: "<YOUR_OPENAI_KEY>"
    - provider: openRouter
      baseUrl: "https://openrouter.ai/api/v1"
      apiKey: "<YOUR_ROUTER_KEY>"
    - provider: searchAPI
      baseUrl: "https://google-search74.p.rapidapi.com"
      apiKey: "<YOUR_RAPIDAPI_KEY>"

  specialists:
    - specialist: nlp
      resume: natural language processing, content generation
    - specialist: gi
      resume: image generation from text
    - specialist: search
      resume: web search integration

  mcpServer:
    baseUrl: "http://localhost:2500"
    apiKey: "testtoken"

  models:
    - provider: openAI
      model: gpt-4
      stream: true
      specialist: nlp
      about: best for reasoning
    - provider: openAI
      model: o4-mini
      stream: true
      specialist: nlp
      about: 200k token context, advanced reasoning
    - provider: openAI
      model: dall-e-3
      stream: false
      specialist: gi
      about: image creation
    - provider: searchAPI
      model: search
      stream: false
      specialist: search
      about: web search results
```

---

## Supported Models  

### OpenAI  
- gpt-4, gpt-4-turbo, gpt-3.5-turbo, gpt-3.5-turbo-16k, o4-mini, o1  
- dall-e-3  

### Others  
- LlamaAI: llama3-70b  
- Anthropic: Claude Opus 4, Claude Sonnet 4  
- DeepSeek R1  
- Mistral Medium 3, Devstral-Small  
- Sarvam-M  
- Google Gemma 3n E4B  

---

## Key Features  

- **Multi-Provider Support**: Switch between any configured provider or model on the fly (`/model`).  
- **Chat & Knowledge**: Separate panes for Chat History (πŸ’­) and Knowledge (πŸ“)β€”both resizable.  
- **Stash Management**:  
  - `/stash <name>` β€” save current chat+knowledge  
  - `/pop <name>`   β€” restore a stash  
  - `/list`         β€” list all stashes  
- **File Import/Export**:  
  - `/import <glob>` β€” import files (.md, .js, .py, .pdf, images via OCR)  
  - `/export <file>` β€” export chat+knowledge snapshot  
- **MCP File Inclusion**:  
  - `/include all`  
  - `/include file=README.md`  
  - `/include pattern=*.js|*.css recursive`  
  - `/include dir=src pattern=*.py recursive`  
- **Raw MCP Operations**:  
  - `/mcp OP [JSON]` β€” e.g. `/mcp LIST_FILES`, `/mcp READ_FILE {"path":"./foo.py"}`  
- **Web Fetch & Automation**:  
  - `/curl [--no-headless] <url> [<url2>|<js>]` β€” fetch pages or run JS  
  - `/play <instructions>` β€” run AI-driven Playwright tests end-to-end  
- **Web Search**:  
  - Use `search` model or click πŸ”Ž to perform live web queries.  
- **Image Generation & OCR**: Ask questions to `dall-e-3` or drop an image to extract text via OCR.  
- **Interactive Console UI**: Retro β€œpip-boy green” theme, responsive on desktop/mobile, accessible.  
- **Performance & Size Indicators**: Emoji feedback for processing speed and token usage.  
- **Extensive Command Palette**: `/help` lists all commands, indicators, and settings.  
- **Todo Automation**: Use `/todo` to execute tasks defined in `todo.md` across your project roots.  

---

## Usage Examples  

### 1) AI-Driven Web Tests with `/play`
```
/play navigate to https://example.com, extract the page title, and verify it contains 'Example Domain'
```

### 2) Fetch & Scrape with `/curl`
```
/curl https://example.com
```

### 3) Include Local Files via MCP
```
/include pattern=*.js recursive fix bug in parser
```

### 4) Raw MCP Commands
```
/mcp LIST_FILES
/mcp READ_FILE {"path":"./src/cli.py"}
```

### 5) Switch Model on the Fly
```
/model o4-mini
```

### 6) Import & Export
```
/import **/*.md
/export conversation_snapshot.txt
```

---

## /todo Feature  

Robodog’s `/todo` command scans one or more `todo.md` files in your configured project roots, detects tasks marked `[ ]`, transitions them to `[~]` (Doing) when started, and `[x]` (Done) when completed. Each task may include:

- `include:` pattern or file specification to gather relevant knowledge
- `focus:` file path where the AI will write or update content
- Optional code fences below the task as initial context

You can have multiple `todo.md` files anywhere under your roots. `/todo` processes the earliest outstanding task, runs the AI with gathered knowledge, updates the focus file, stamps start/completion times, and advances to the next.

![Robodog MCP File Service](screenshot-todo.png)

### Example `todo.md` File Formats

```markdown
# file: project1/todo.md
- [ ] Revise API client
  - include: pattern=api/*.js recursive
  - focus: file=api/client.js
```code
// existing stub
```


```markdown
- [ ] Add unit tests
  - include: file=tests/template.spec.js
  - focus: file=tests/api.client.spec.js
```

```markdown
# file: project2/docs/todo.md
- [ ] Update README
  - focus: file=README.md
- [ ] Generate changelog
  - include: pattern=CHANGELOG*.md
  - focus: file=CHANGELOG.md
```code

```

```markdown
# todo readme
- [x] readme
  - include: pattern=*robodog*.md|*robodog*.py|*todo.md   recursive`
  - focus: file=c:\projects\robodog\robodogcli\temp\service.log
```code
1. do not remove any content
2. add a new readme section for the /todo feature with examples of the todo.md files and how you can have as many as possible
3. give lots of exampkes of file formats
```


```markdown
# watch
- [ ] change app prints in service logger.INFO
  - include: pattern=*robodog*.md|*robodog*.py  recursive`
  - focus:   file=c:\projects\robodog\robodogcli\robodog\cli*3*.py
```code
do not remove any features.
give me full drop in code file
```


```markdown
# fix logging
- [ ] ask: fix logging. change logging so that it gets log level through command line. change logger so that it takes log level from the command line param
  - include: pattern=*robodog*.md|*robodog*.py  recursive`
  - focus: file=c:\projects\robodog\robodogcli\robodog\cli3.py
```code
my knowledge
```

You can chain as many tasks and files as needed. Each can reside in different directories, and Robodog will locate all `todo.md` files automatically.

## Configuration & Command Reference  

See command palette in-app (`/help`) or the reference below:

```
/help             β€” show help  
/models           β€” list configured models  
/model <name>     β€” switch model  
/key <prov> <key> β€” set API key  
/import <glob>    β€” import files into knowledge  
/export <file>    β€” export snapshot  
/clear            β€” clear chat & knowledge  
/stash <name>     β€” stash state  
/pop <name>       β€” restore stash  
/list             β€” list stashes  
/temperature <n>  β€” set temperature  
/top_p <n>        β€” set top_p  
/max_tokens <n>   β€” set max_tokens  
/frequency_penalty <n> β€” set frequency_penalty  
/presence_penalty <n>  β€” set presence_penalty  
/stream           β€” enable streaming mode  
/rest             β€” disable streaming mode  
/folders <dirs>   β€” set MCP roots  
/include …        β€” include files via MCP  
/curl …           β€” fetch pages / run JS  
/play …           β€” AI-driven Playwright tests  
/mcp …            β€” invoke raw MCP operation  
/todo             β€” run next To Do task  
```

---

## Build & Run  

```bash
# Clone or unzip robodog
cd robodog
python build.py
open ./dist/robodog.html
```

```bash
npm install robodoglib  
npm install robodogcli  
npm install robodog  
pip install robodogcli  
pip show -f robodogcli  
python -m robodogcli.cli --help  
python -m playwright install
```

---

Enjoy Robodog AIβ€”the future of fast, contextual, and extensible AI interaction!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "robodogcli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "robot, dog, automation",
    "author": null,
    "author_email": "adourish <adourish@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/bd/89/0412a8eb971852ebbcbf1c1c873b74b402b0b144d767c88357cc12f7b8dc/robodogcli-2.6.15.tar.gz",
    "platform": null,
    "description": "# file: README.md\r\n![Robodog MCP File Service](screenshot-mcp.png)\r\n\r\n## Overview  \r\nRobodog is a lightweight, zero-install, command-line style generative AI client that integrates multiple providers (OpenAI, OpenRouter, LlamaAI, DeepSeek, Anthropic, Sarvam AI, Google Search API, and more) into a unified interface. Key capabilities include:\r\n\r\n- Access to cutting-edge models: `o4-mini` (200k context), `gpt-4`, `gpt-4-turbo`, `dall-e-3`, Llama3-70b, Claude Opus/Sonnet, Mistral, Sarvam-M, Gemma 3n, etc.  \r\n- Massive context windows (up to 200k tokens) across different models.  \r\n- Seamless chat history & knowledge management with stashes and snapshots.  \r\n- File import/export (text, Markdown, code, PDF, images via OCR).  \r\n- In-chat file inclusion from a local MCP server.  \r\n- Built-in web search integration.  \r\n- Image generation & OCR pipelines.  \r\n- AI-driven web automation/testing via Playwright (`/play`).  \r\n- Raw MCP operations (`/mcp`).  \r\n- `/todo` feature: automate and track tasks defined in `todo.md`.  \r\n- Accessible, retro \u201cconsole\u201d UI with customizable themes and responsive design.  \r\n\r\n---\r\n\r\n## Try Robodog  \r\n\r\n- **Web**: https://adourish.github.io/robodog/robodog/dist/  \r\n- **Android**: https://play.google.com/store/apps/details?id=com.unclebulgaria.robodog  \r\n- **npm packages**:  \r\n  - `npm install robodoglib`  \r\n  - `npm install robodogcli`  \r\n  - `npm install robodog`  \r\n- **Python**:  \r\n  - `pip install robodogcli`  \r\n  - `pip show -f robodogcli`  \r\n  - `python -m robodogcli.cli --help`  \r\n  - `pip install --upgrade requests tiktoken PyYAML openai playwright pydantic langchain` (optional)  \r\n\r\n---\r\n\r\n## Configuration  \r\n\r\nClick the \u2699\ufe0f icon in the top-menu to open settings, or edit your YAML directly:\r\n\r\n```yaml\r\nconfigs:\r\n  providers:\r\n    - provider: openAI\r\n      baseUrl: \"https://api.openai.com\"\r\n      apiKey: \"<YOUR_OPENAI_KEY>\"\r\n    - provider: openRouter\r\n      baseUrl: \"https://openrouter.ai/api/v1\"\r\n      apiKey: \"<YOUR_ROUTER_KEY>\"\r\n    - provider: searchAPI\r\n      baseUrl: \"https://google-search74.p.rapidapi.com\"\r\n      apiKey: \"<YOUR_RAPIDAPI_KEY>\"\r\n\r\n  specialists:\r\n    - specialist: nlp\r\n      resume: natural language processing, content generation\r\n    - specialist: gi\r\n      resume: image generation from text\r\n    - specialist: search\r\n      resume: web search integration\r\n\r\n  mcpServer:\r\n    baseUrl: \"http://localhost:2500\"\r\n    apiKey: \"testtoken\"\r\n\r\n  models:\r\n    - provider: openAI\r\n      model: gpt-4\r\n      stream: true\r\n      specialist: nlp\r\n      about: best for reasoning\r\n    - provider: openAI\r\n      model: o4-mini\r\n      stream: true\r\n      specialist: nlp\r\n      about: 200k token context, advanced reasoning\r\n    - provider: openAI\r\n      model: dall-e-3\r\n      stream: false\r\n      specialist: gi\r\n      about: image creation\r\n    - provider: searchAPI\r\n      model: search\r\n      stream: false\r\n      specialist: search\r\n      about: web search results\r\n```\r\n\r\n---\r\n\r\n## Supported Models  \r\n\r\n### OpenAI  \r\n- gpt-4, gpt-4-turbo, gpt-3.5-turbo, gpt-3.5-turbo-16k, o4-mini, o1  \r\n- dall-e-3  \r\n\r\n### Others  \r\n- LlamaAI: llama3-70b  \r\n- Anthropic: Claude Opus 4, Claude Sonnet 4  \r\n- DeepSeek R1  \r\n- Mistral Medium 3, Devstral-Small  \r\n- Sarvam-M  \r\n- Google Gemma 3n E4B  \r\n\r\n---\r\n\r\n## Key Features  \r\n\r\n- **Multi-Provider Support**: Switch between any configured provider or model on the fly (`/model`).  \r\n- **Chat & Knowledge**: Separate panes for Chat History (\ud83d\udcad) and Knowledge (\ud83d\udcdd)\u2014both resizable.  \r\n- **Stash Management**:  \r\n  - `/stash <name>` \u2014 save current chat+knowledge  \r\n  - `/pop <name>`   \u2014 restore a stash  \r\n  - `/list`         \u2014 list all stashes  \r\n- **File Import/Export**:  \r\n  - `/import <glob>` \u2014 import files (.md, .js, .py, .pdf, images via OCR)  \r\n  - `/export <file>` \u2014 export chat+knowledge snapshot  \r\n- **MCP File Inclusion**:  \r\n  - `/include all`  \r\n  - `/include file=README.md`  \r\n  - `/include pattern=*.js|*.css recursive`  \r\n  - `/include dir=src pattern=*.py recursive`  \r\n- **Raw MCP Operations**:  \r\n  - `/mcp OP [JSON]` \u2014 e.g. `/mcp LIST_FILES`, `/mcp READ_FILE {\"path\":\"./foo.py\"}`  \r\n- **Web Fetch & Automation**:  \r\n  - `/curl [--no-headless] <url> [<url2>|<js>]` \u2014 fetch pages or run JS  \r\n  - `/play <instructions>` \u2014 run AI-driven Playwright tests end-to-end  \r\n- **Web Search**:  \r\n  - Use `search` model or click \ud83d\udd0e to perform live web queries.  \r\n- **Image Generation & OCR**: Ask questions to `dall-e-3` or drop an image to extract text via OCR.  \r\n- **Interactive Console UI**: Retro \u201cpip-boy green\u201d theme, responsive on desktop/mobile, accessible.  \r\n- **Performance & Size Indicators**: Emoji feedback for processing speed and token usage.  \r\n- **Extensive Command Palette**: `/help` lists all commands, indicators, and settings.  \r\n- **Todo Automation**: Use `/todo` to execute tasks defined in `todo.md` across your project roots.  \r\n\r\n---\r\n\r\n## Usage Examples  \r\n\r\n### 1) AI-Driven Web Tests with `/play`\r\n```\r\n/play navigate to https://example.com, extract the page title, and verify it contains 'Example Domain'\r\n```\r\n\r\n### 2) Fetch & Scrape with `/curl`\r\n```\r\n/curl https://example.com\r\n```\r\n\r\n### 3) Include Local Files via MCP\r\n```\r\n/include pattern=*.js recursive fix bug in parser\r\n```\r\n\r\n### 4) Raw MCP Commands\r\n```\r\n/mcp LIST_FILES\r\n/mcp READ_FILE {\"path\":\"./src/cli.py\"}\r\n```\r\n\r\n### 5) Switch Model on the Fly\r\n```\r\n/model o4-mini\r\n```\r\n\r\n### 6) Import & Export\r\n```\r\n/import **/*.md\r\n/export conversation_snapshot.txt\r\n```\r\n\r\n---\r\n\r\n## /todo Feature  \r\n\r\nRobodog\u2019s `/todo` command scans one or more `todo.md` files in your configured project roots, detects tasks marked `[ ]`, transitions them to `[~]` (Doing) when started, and `[x]` (Done) when completed. Each task may include:\r\n\r\n- `include:` pattern or file specification to gather relevant knowledge\r\n- `focus:` file path where the AI will write or update content\r\n- Optional code fences below the task as initial context\r\n\r\nYou can have multiple `todo.md` files anywhere under your roots. `/todo` processes the earliest outstanding task, runs the AI with gathered knowledge, updates the focus file, stamps start/completion times, and advances to the next.\r\n\r\n![Robodog MCP File Service](screenshot-todo.png)\r\n\r\n### Example `todo.md` File Formats\r\n\r\n```markdown\r\n# file: project1/todo.md\r\n- [ ] Revise API client\r\n  - include: pattern=api/*.js recursive\r\n  - focus: file=api/client.js\r\n```code\r\n// existing stub\r\n```\r\n\r\n\r\n```markdown\r\n- [ ] Add unit tests\r\n  - include: file=tests/template.spec.js\r\n  - focus: file=tests/api.client.spec.js\r\n```\r\n\r\n```markdown\r\n# file: project2/docs/todo.md\r\n- [ ] Update README\r\n  - focus: file=README.md\r\n- [ ] Generate changelog\r\n  - include: pattern=CHANGELOG*.md\r\n  - focus: file=CHANGELOG.md\r\n```code\r\n\r\n```\r\n\r\n```markdown\r\n# todo readme\r\n- [x] readme\r\n  - include: pattern=*robodog*.md|*robodog*.py|*todo.md   recursive`\r\n  - focus: file=c:\\projects\\robodog\\robodogcli\\temp\\service.log\r\n```code\r\n1. do not remove any content\r\n2. add a new readme section for the /todo feature with examples of the todo.md files and how you can have as many as possible\r\n3. give lots of exampkes of file formats\r\n```\r\n\r\n\r\n```markdown\r\n# watch\r\n- [ ] change app prints in service logger.INFO\r\n  - include: pattern=*robodog*.md|*robodog*.py  recursive`\r\n  - focus:   file=c:\\projects\\robodog\\robodogcli\\robodog\\cli*3*.py\r\n```code\r\ndo not remove any features.\r\ngive me full drop in code file\r\n```\r\n\r\n\r\n```markdown\r\n# fix logging\r\n- [ ] ask: fix logging. change logging so that it gets log level through command line. change logger so that it takes log level from the command line param\r\n  - include: pattern=*robodog*.md|*robodog*.py  recursive`\r\n  - focus: file=c:\\projects\\robodog\\robodogcli\\robodog\\cli3.py\r\n```code\r\nmy knowledge\r\n```\r\n\r\nYou can chain as many tasks and files as needed. Each can reside in different directories, and Robodog will locate all `todo.md` files automatically.\r\n\r\n## Configuration & Command Reference  \r\n\r\nSee command palette in-app (`/help`) or the reference below:\r\n\r\n```\r\n/help             \u2014 show help  \r\n/models           \u2014 list configured models  \r\n/model <name>     \u2014 switch model  \r\n/key <prov> <key> \u2014 set API key  \r\n/import <glob>    \u2014 import files into knowledge  \r\n/export <file>    \u2014 export snapshot  \r\n/clear            \u2014 clear chat & knowledge  \r\n/stash <name>     \u2014 stash state  \r\n/pop <name>       \u2014 restore stash  \r\n/list             \u2014 list stashes  \r\n/temperature <n>  \u2014 set temperature  \r\n/top_p <n>        \u2014 set top_p  \r\n/max_tokens <n>   \u2014 set max_tokens  \r\n/frequency_penalty <n> \u2014 set frequency_penalty  \r\n/presence_penalty <n>  \u2014 set presence_penalty  \r\n/stream           \u2014 enable streaming mode  \r\n/rest             \u2014 disable streaming mode  \r\n/folders <dirs>   \u2014 set MCP roots  \r\n/include \u2026        \u2014 include files via MCP  \r\n/curl \u2026           \u2014 fetch pages / run JS  \r\n/play \u2026           \u2014 AI-driven Playwright tests  \r\n/mcp \u2026            \u2014 invoke raw MCP operation  \r\n/todo             \u2014 run next To Do task  \r\n```\r\n\r\n---\r\n\r\n## Build & Run  \r\n\r\n```bash\r\n# Clone or unzip robodog\r\ncd robodog\r\npython build.py\r\nopen ./dist/robodog.html\r\n```\r\n\r\n```bash\r\nnpm install robodoglib  \r\nnpm install robodogcli  \r\nnpm install robodog  \r\npip install robodogcli  \r\npip show -f robodogcli  \r\npython -m robodogcli.cli --help  \r\npython -m playwright install\r\n```\r\n\r\n---\r\n\r\nEnjoy Robodog AI\u2014the future of fast, contextual, and extensible AI interaction!\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Robodog",
    "version": "2.6.15",
    "project_urls": {
        "Documentation": "https://robodog.readthedocs.io",
        "Homepage": "https://github.com/adourish/robodog",
        "Repository": "https://github.com/adourish/robodog.git"
    },
    "split_keywords": [
        "robot",
        " dog",
        " automation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4c1d48ec353f3e477b8fba8b4144b9d0dd87d7cd0998c36650096d9b629ba2cd",
                "md5": "16a4c954b71fbfb4ff4ddf6d1f0fc431",
                "sha256": "ad8f91093bb319dcd1a797fdf521b31d716d007abf83d94744f99c3021c75ff4"
            },
            "downloads": -1,
            "filename": "robodogcli-2.6.15-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "16a4c954b71fbfb4ff4ddf6d1f0fc431",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 19340,
            "upload_time": "2025-09-01T14:30:21",
            "upload_time_iso_8601": "2025-09-01T14:30:21.650099Z",
            "url": "https://files.pythonhosted.org/packages/4c/1d/48ec353f3e477b8fba8b4144b9d0dd87d7cd0998c36650096d9b629ba2cd/robodogcli-2.6.15-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd890412a8eb971852ebbcbf1c1c873b74b402b0b144d767c88357cc12f7b8dc",
                "md5": "d5cebeaa9484d45b536bf8a2b9ce7fc1",
                "sha256": "f2869556b0a04c3e343d4e83884ebc0deebfa6d6727085127857c53fc5f7f2b1"
            },
            "downloads": -1,
            "filename": "robodogcli-2.6.15.tar.gz",
            "has_sig": false,
            "md5_digest": "d5cebeaa9484d45b536bf8a2b9ce7fc1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 21763,
            "upload_time": "2025-09-01T14:30:23",
            "upload_time_iso_8601": "2025-09-01T14:30:23.400393Z",
            "url": "https://files.pythonhosted.org/packages/bd/89/0412a8eb971852ebbcbf1c1c873b74b402b0b144d767c88357cc12f7b8dc/robodogcli-2.6.15.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-01 14:30:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "adourish",
    "github_project": "robodog",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "robodogcli"
}
        
Elapsed time: 1.93266s