pyhttp-app 2.0.1__tar.gz → 2.0.2__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.
Files changed (49) hide show
  1. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/PKG-INFO +27 -65
  2. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/README.md +25 -63
  3. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/__init__.py +2 -2
  4. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/__main__.py +1 -1
  5. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/app.py +1 -1
  6. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/mcp.py +1 -1
  7. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/updater.py +1 -1
  8. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/PKG-INFO +27 -65
  9. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyproject.toml +1 -1
  10. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/LICENSE.md +0 -0
  11. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/assertions.py +0 -0
  12. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/cli.py +0 -0
  13. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/console.py +0 -0
  14. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/curl.py +0 -0
  15. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/db.py +0 -0
  16. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/jsengine.py +0 -0
  17. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/jsonc.py +0 -0
  18. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/mock.py +0 -0
  19. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/monitors.py +0 -0
  20. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/oauth2.py +0 -0
  21. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/openapi.py +0 -0
  22. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/pm.js +0 -0
  23. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/postman.py +0 -0
  24. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/runner.py +0 -0
  25. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/scripts.py +0 -0
  26. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/app.js +0 -0
  27. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/codegen.js +0 -0
  28. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/editor.js +0 -0
  29. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/features.css +0 -0
  30. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/features.js +0 -0
  31. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/index.html +0 -0
  32. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/logo.svg +0 -0
  33. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/style.css +0 -0
  34. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/codemirror.js +0 -0
  35. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/Inter-OFL.txt +0 -0
  36. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  37. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/vendor/fonts/inter-latin-wght-normal.woff2 +0 -0
  38. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/static/viewer.js +0 -0
  39. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp/templating.py +0 -0
  40. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/SOURCES.txt +0 -0
  41. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/dependency_links.txt +0 -0
  42. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/entry_points.txt +0 -0
  43. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/requires.txt +0 -0
  44. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/pyhttp_app.egg-info/top_level.txt +0 -0
  45. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/setup.cfg +0 -0
  46. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_backend.py +0 -0
  47. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_integrations.py +0 -0
  48. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_mcp.py +0 -0
  49. {pyhttp_app-2.0.1 → pyhttp_app-2.0.2}/tests/test_ui.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyhttp-app
3
- Version: 2.0.1
4
- Summary: A local, Postman-like HTTP client with a collection runner, scripts and an MCP server
3
+ Version: 2.0.2
4
+ Summary: Local API client and alternative to Postman: collection runner, Postman-compatible scripts, mock servers and an MCP server
5
5
  Author-email: pyhttp Dev Team <dev@pyhttp.com>
6
6
  License: # pyhttp Free License 1.1
7
7
 
@@ -147,62 +147,10 @@ Requires-Dist: pyyaml>=6.0
147
147
  Requires-Dist: mcp>=2
148
148
  Dynamic: license-file
149
149
 
150
- cd C:\Users\vishv\Documents\www\pyhttp\
151
- C:\Users\vishv\Documents\www\pyhttp\pyhttp\
152
- claude --dangerously-skip-permissions
153
- # todo
154
- - kill port
155
- lsof -t -i:8765 | xargs kill -9
156
-
157
- <!-- - both show waiting while running in parallel -->
158
- <!-- - pretty/ raw bar with response must not scroll with response - fix that
159
- - in headers give select all/unselect all button or checkbox
160
- - auto dropdown in Token from env/global variables
161
- - if get method gives error show prompt or Tip: that use post or any other method method
162
- - observed a weird bug that body 1 somehow was doing conflict with body 2, when only sending body 2 getting same error that i must see in body 1 for the response in body 2 can you check this and fix if any such issue can happen -->
163
-
164
- <!-- - automatic api tester with a timer, where it will send an report of times and alert if failed api api -->
165
- <!-- - give mcp so this tool data like api body and etc can be filled and managed by ai , make this fully manageable tool by using ai -->
166
- - Later build feedback form in www /Users/vishvendra/Documents/www/pyhttp.com and app /Users/vishvendra/Documents/www/pyhttp/
167
- - seo
168
-
169
-
170
- <!-- - update www with all the updates we just made -->
171
- <!-- - delete all older releases with my name vishvendra singh if possible but keep the release 1.9 and after -->
172
- <!-- - if response is pushed to bottom by down button to view body the body and and list of bodies component must stretch to the bottm will the response window right now it remains sname, also when click the button to bring the response from bottom to the right it hides body and if i try to click the separator and drag it shows weird behaviour and does not work properly fix these issues and make it better -->
173
- <!-- - dependent api - like token triggered automatically when any api is sent a call, so fetch token from using token api, where it will have a pm.environment.set(token) something like this - so it will set token in environment automatically and then call the pi - if put in as dependent api in any other api and set a time after which it must trigger automatically - like token has expired time - implement intelligently in a flow -->
174
- <!-- - remove my name and keep something like - "pyhttp Dev team - From the unknown to the unowned" like this - in tagline and owner etc at all the palces in website and tool in current or next releases -->
175
- <!-- - lets say if there are multiple bodies in api then in scripts i want to give an option to select from - perform test and Pre-request based on bodies 1 or 2 or 3 etc (name of body) so user can select if same test are to be perfomed for all bodies or different - pre-request and test - for each body - i told you to do this before but not able to see or find this change -->
176
- <!-- - run with csv - give sample file, also show multiple or single responses in api beside/below api definition or body for each run automatically -->
177
- <!-- - in current run on right hand side - write name of files in pop when clicked the tab - with little description, right now it is confusing - as user not understanding difference between api.json and api.body.json - do this change quickly and dont spend too much testing on it or build or relese there are more chaning i will be sending then test or do any other process afterward when i tell you -->
178
- <!-- - highly parallel request without sequence or allow to set in while trying to run on run name and confirmation screen also give button to skip and run directly without giving name -->
179
- <!-- - make default useragent - pyhttp and version -->
180
- <!-- - vertical partition compresses the search input box and "run selected" button which does not look good fix that on left hand side - fix ui/ux -->
181
- <!-- - settings menu seems like falling over each other give spacing and make better ui/ux -->
182
- <!-- - below button in bottom movies response window, can make this clearer so one can easily know what that button does or any other why make it easy ui/ux -->
183
- <!-- - put a hamburger menu on left hand side to show hide left hand sidebar -->
184
- <!-- - when there is an long error from api shown above the json response it adds horizontal scroller, i think you must text wrap that and must not add horizontal scroll in any case -->
185
- <!-- - tabs like api or body have very little vertical scroll, i think you must not show scroll anywhere instead put tabs above or below - and/or give this setting to set for user -->
186
- <!-- - rename Tests to scripts and there must be option to select body and apply test to that specific body or all body and separate test can be applied to separate bodies -->
187
- <!-- work on all of above intelligently and in such a way must be best decision from your research i want to make best http tool as per ui/ux and ease of use point of view -->
188
- <!-- - also i am thinking to make it free in license for everyone - what do you think - -->
189
- <!-- - if i click on any other tab it selects all the bodies, but it must save the state like selected body only even when tabs are changes or this app is opened or closed -->
190
- <!-- - give cancel button in place of sending when sending api call to cancel running call/calls -->
191
- <!-- - give select and enclose/open javascript with arrow in left beside line numbers -->
192
- <!-- - ctrl+enter in windows and command+enter must send it api call -->
193
- <!-- - clicking tabs must not change the box/card size in settings -->
194
- <!-- - close icon/button foer current/history right side bar -->
195
- <!-- - open/cose button for response bar, i mean hide it so one can view entire body similar for response there must option to maximize it to view entire response -->
196
- <!-- - must be able to move tabs left and right -->
197
- <!-- - check now must show loading icon and show status beside that only -->
198
- <!-- - current run and history not showing in mac/windows -->
199
- <!-- - auto release not working -->
200
- <!-- - instead of pm.test make it ph or py.test which you feel is good, i feel py. is good in Tests
201
- - pretty is showing too much space after each line in response of json
202
- - in tests i keep getting error - invalid systax ("<test script>", line 1) and failing in setting any variables -->
203
150
  # pyhttp
204
151
 
205
- A local, Postman-like HTTP client with a built-in collection runner, in its
152
+ A local API client and alternative to Postman — it imports Postman collections
153
+ and runs Postman scripts — with a built-in collection runner, in its
206
154
  own desktop window. Everything stays on your machine: requests live in a SQLite
207
155
  file, every run writes its responses to plain files, and the backend listens
208
156
  only on `127.0.0.1`.
@@ -390,8 +338,11 @@ pyhttp
390
338
  ```
391
339
 
392
340
  On Linux, install the GTK webview bindings first (see *Linux* below) or use
393
- `pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp-app` installs the
394
- same package through Homebrew (macOS and Linux, Intel and ARM).
341
+ `pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp` installs the
342
+ same package through Homebrew (macOS and Linux, Intel and ARM; the tap is
343
+ [pyhttp2/homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp)) — or tap
344
+ once with `brew tap pyhttp2/pyhttp`, after which plain `brew install pyhttp`,
345
+ `brew upgrade pyhttp` and `brew install --cask pyhttp` all work.
395
346
 
396
347
  **Windows**: double-click `run.bat`. The window opens without a console.
397
348
  WebView2 ships with Windows 10/11.
@@ -498,7 +449,7 @@ Packaged builds bundle Python and every dependency, so users just double-click.
498
449
  |---|---|---|
499
450
  | Windows 10/11 | `pyhttp-<version>-windows-x64-setup.exe`: installer (per user, no admin rights, into `%LOCALAPPDATA%\Programs\pyhttp`, Start menu entry, optional desktop icon, uninstaller in *Apps*) | `%APPDATA%\pyhttp` |
500
451
  | Windows 10/11 | `pyhttp-<version>-windows-x64.exe`: portable, one file, no install | `%APPDATA%\pyhttp` |
501
- | macOS 11+ | `brew tap pyhttp2/pyhttp https://github.com/pyhttp2/pyhttp-releases && brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
452
+ | macOS 11+ | `brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
502
453
  | Ubuntu 22.04+, Debian 12+ | `sudo apt install ./pyhttp-<version>-linux-amd64.deb`: installs to `/usr/lib/pyhttp`, adds `pyhttp` to the PATH and an app-menu entry; uses the distro's GTK and WebKitGTK (pulled in as dependencies) | `~/.local/share/pyhttp` |
503
454
 
504
455
  Running from source keeps using `./data`. In the packaged app, output that would
@@ -559,10 +510,14 @@ python packaging/bump.py 0.1.2
559
510
  ```
560
511
 
561
512
  That sets `__version__`, commits, creates the tag `v0.1.2` and pushes both. The
562
- tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`,
563
- the license files and the Homebrew cask to the public
564
- [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) repository (needs the
565
- `RELEASE_TOKEN` secret). The Windows runner installs Inno Setup with Chocolatey when
513
+ tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`
514
+ and the license files to this repository's Releases page, uploads `pyhttp-app` to
515
+ PyPI (secret `PYPI_API_TOKEN`), updates the Homebrew tap
516
+ ([homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp): cask + formula)
517
+ and mirrors everything to
518
+ [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) so installs from
519
+ before the move keep updating (the mirror and taps need the `RELEASE_TOKEN`
520
+ secret, a fine-grained PAT with Contents: write on those two repositories). The Windows runner installs Inno Setup with Chocolatey when
566
521
  it is not already there. The in-app updater refuses a release without `SHA256SUMS.txt`,
567
522
  so keep that step in the workflow. A tag whose version differs from `__version__` is refused,
568
523
  because the release name, file names and the in-app update check all come from
@@ -624,11 +579,18 @@ is not allowed, and the name and logo stay with the project. The source code is
624
579
  published on PyPI as [`pyhttp-app`](https://pypi.org/project/pyhttp-app/)
625
580
  so it can be inspected and installed with pip; you may modify your own copy but
626
581
  not distribute the changes. The packaged installer, `.exe`, `.dmg` and `.deb`
627
- builds are published from the public
628
- [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) repository.
582
+ builds are published on this repository's
583
+ [Releases](https://github.com/pyhttp2/pyhttp/releases) page and mirrored to
584
+ [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases), the old home,
585
+ so installs from before the move keep updating.
629
586
  Bundled open-source components are listed in
630
587
  [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
631
588
 
589
+ Postman is a trademark of Postman, Inc. pyhttp is an independent project and is
590
+ not affiliated with or endorsed by Postman, Inc.; the name is used only to
591
+ describe compatibility (importing Postman collections, running Postman-style
592
+ scripts).
593
+
632
594
  The app itself stays free. If paid extras ever appear, they will be optional
633
595
  add-ons, services or support under their own terms, never a restriction on who
634
596
  may use pyhttp.
@@ -1,59 +1,7 @@
1
- cd C:\Users\vishv\Documents\www\pyhttp\
2
- C:\Users\vishv\Documents\www\pyhttp\pyhttp\
3
- claude --dangerously-skip-permissions
4
- # todo
5
- - kill port
6
- lsof -t -i:8765 | xargs kill -9
7
-
8
- <!-- - both show waiting while running in parallel -->
9
- <!-- - pretty/ raw bar with response must not scroll with response - fix that
10
- - in headers give select all/unselect all button or checkbox
11
- - auto dropdown in Token from env/global variables
12
- - if get method gives error show prompt or Tip: that use post or any other method method
13
- - observed a weird bug that body 1 somehow was doing conflict with body 2, when only sending body 2 getting same error that i must see in body 1 for the response in body 2 can you check this and fix if any such issue can happen -->
14
-
15
- <!-- - automatic api tester with a timer, where it will send an report of times and alert if failed api api -->
16
- <!-- - give mcp so this tool data like api body and etc can be filled and managed by ai , make this fully manageable tool by using ai -->
17
- - Later build feedback form in www /Users/vishvendra/Documents/www/pyhttp.com and app /Users/vishvendra/Documents/www/pyhttp/
18
- - seo
19
-
20
-
21
- <!-- - update www with all the updates we just made -->
22
- <!-- - delete all older releases with my name vishvendra singh if possible but keep the release 1.9 and after -->
23
- <!-- - if response is pushed to bottom by down button to view body the body and and list of bodies component must stretch to the bottm will the response window right now it remains sname, also when click the button to bring the response from bottom to the right it hides body and if i try to click the separator and drag it shows weird behaviour and does not work properly fix these issues and make it better -->
24
- <!-- - dependent api - like token triggered automatically when any api is sent a call, so fetch token from using token api, where it will have a pm.environment.set(token) something like this - so it will set token in environment automatically and then call the pi - if put in as dependent api in any other api and set a time after which it must trigger automatically - like token has expired time - implement intelligently in a flow -->
25
- <!-- - remove my name and keep something like - "pyhttp Dev team - From the unknown to the unowned" like this - in tagline and owner etc at all the palces in website and tool in current or next releases -->
26
- <!-- - lets say if there are multiple bodies in api then in scripts i want to give an option to select from - perform test and Pre-request based on bodies 1 or 2 or 3 etc (name of body) so user can select if same test are to be perfomed for all bodies or different - pre-request and test - for each body - i told you to do this before but not able to see or find this change -->
27
- <!-- - run with csv - give sample file, also show multiple or single responses in api beside/below api definition or body for each run automatically -->
28
- <!-- - in current run on right hand side - write name of files in pop when clicked the tab - with little description, right now it is confusing - as user not understanding difference between api.json and api.body.json - do this change quickly and dont spend too much testing on it or build or relese there are more chaning i will be sending then test or do any other process afterward when i tell you -->
29
- <!-- - highly parallel request without sequence or allow to set in while trying to run on run name and confirmation screen also give button to skip and run directly without giving name -->
30
- <!-- - make default useragent - pyhttp and version -->
31
- <!-- - vertical partition compresses the search input box and "run selected" button which does not look good fix that on left hand side - fix ui/ux -->
32
- <!-- - settings menu seems like falling over each other give spacing and make better ui/ux -->
33
- <!-- - below button in bottom movies response window, can make this clearer so one can easily know what that button does or any other why make it easy ui/ux -->
34
- <!-- - put a hamburger menu on left hand side to show hide left hand sidebar -->
35
- <!-- - when there is an long error from api shown above the json response it adds horizontal scroller, i think you must text wrap that and must not add horizontal scroll in any case -->
36
- <!-- - tabs like api or body have very little vertical scroll, i think you must not show scroll anywhere instead put tabs above or below - and/or give this setting to set for user -->
37
- <!-- - rename Tests to scripts and there must be option to select body and apply test to that specific body or all body and separate test can be applied to separate bodies -->
38
- <!-- work on all of above intelligently and in such a way must be best decision from your research i want to make best http tool as per ui/ux and ease of use point of view -->
39
- <!-- - also i am thinking to make it free in license for everyone - what do you think - -->
40
- <!-- - if i click on any other tab it selects all the bodies, but it must save the state like selected body only even when tabs are changes or this app is opened or closed -->
41
- <!-- - give cancel button in place of sending when sending api call to cancel running call/calls -->
42
- <!-- - give select and enclose/open javascript with arrow in left beside line numbers -->
43
- <!-- - ctrl+enter in windows and command+enter must send it api call -->
44
- <!-- - clicking tabs must not change the box/card size in settings -->
45
- <!-- - close icon/button foer current/history right side bar -->
46
- <!-- - open/cose button for response bar, i mean hide it so one can view entire body similar for response there must option to maximize it to view entire response -->
47
- <!-- - must be able to move tabs left and right -->
48
- <!-- - check now must show loading icon and show status beside that only -->
49
- <!-- - current run and history not showing in mac/windows -->
50
- <!-- - auto release not working -->
51
- <!-- - instead of pm.test make it ph or py.test which you feel is good, i feel py. is good in Tests
52
- - pretty is showing too much space after each line in response of json
53
- - in tests i keep getting error - invalid systax ("<test script>", line 1) and failing in setting any variables -->
54
1
  # pyhttp
55
2
 
56
- A local, Postman-like HTTP client with a built-in collection runner, in its
3
+ A local API client and alternative to Postman — it imports Postman collections
4
+ and runs Postman scripts — with a built-in collection runner, in its
57
5
  own desktop window. Everything stays on your machine: requests live in a SQLite
58
6
  file, every run writes its responses to plain files, and the backend listens
59
7
  only on `127.0.0.1`.
@@ -241,8 +189,11 @@ pyhttp
241
189
  ```
242
190
 
243
191
  On Linux, install the GTK webview bindings first (see *Linux* below) or use
244
- `pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp-app` installs the
245
- same package through Homebrew (macOS and Linux, Intel and ARM).
192
+ `pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp` installs the
193
+ same package through Homebrew (macOS and Linux, Intel and ARM; the tap is
194
+ [pyhttp2/homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp)) — or tap
195
+ once with `brew tap pyhttp2/pyhttp`, after which plain `brew install pyhttp`,
196
+ `brew upgrade pyhttp` and `brew install --cask pyhttp` all work.
246
197
 
247
198
  **Windows**: double-click `run.bat`. The window opens without a console.
248
199
  WebView2 ships with Windows 10/11.
@@ -349,7 +300,7 @@ Packaged builds bundle Python and every dependency, so users just double-click.
349
300
  |---|---|---|
350
301
  | Windows 10/11 | `pyhttp-<version>-windows-x64-setup.exe`: installer (per user, no admin rights, into `%LOCALAPPDATA%\Programs\pyhttp`, Start menu entry, optional desktop icon, uninstaller in *Apps*) | `%APPDATA%\pyhttp` |
351
302
  | Windows 10/11 | `pyhttp-<version>-windows-x64.exe`: portable, one file, no install | `%APPDATA%\pyhttp` |
352
- | macOS 11+ | `brew tap pyhttp2/pyhttp https://github.com/pyhttp2/pyhttp-releases && brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
303
+ | macOS 11+ | `brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
353
304
  | Ubuntu 22.04+, Debian 12+ | `sudo apt install ./pyhttp-<version>-linux-amd64.deb`: installs to `/usr/lib/pyhttp`, adds `pyhttp` to the PATH and an app-menu entry; uses the distro's GTK and WebKitGTK (pulled in as dependencies) | `~/.local/share/pyhttp` |
354
305
 
355
306
  Running from source keeps using `./data`. In the packaged app, output that would
@@ -410,10 +361,14 @@ python packaging/bump.py 0.1.2
410
361
  ```
411
362
 
412
363
  That sets `__version__`, commits, creates the tag `v0.1.2` and pushes both. The
413
- tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`,
414
- the license files and the Homebrew cask to the public
415
- [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) repository (needs the
416
- `RELEASE_TOKEN` secret). The Windows runner installs Inno Setup with Chocolatey when
364
+ tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`
365
+ and the license files to this repository's Releases page, uploads `pyhttp-app` to
366
+ PyPI (secret `PYPI_API_TOKEN`), updates the Homebrew tap
367
+ ([homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp): cask + formula)
368
+ and mirrors everything to
369
+ [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) so installs from
370
+ before the move keep updating (the mirror and taps need the `RELEASE_TOKEN`
371
+ secret, a fine-grained PAT with Contents: write on those two repositories). The Windows runner installs Inno Setup with Chocolatey when
417
372
  it is not already there. The in-app updater refuses a release without `SHA256SUMS.txt`,
418
373
  so keep that step in the workflow. A tag whose version differs from `__version__` is refused,
419
374
  because the release name, file names and the in-app update check all come from
@@ -475,11 +430,18 @@ is not allowed, and the name and logo stay with the project. The source code is
475
430
  published on PyPI as [`pyhttp-app`](https://pypi.org/project/pyhttp-app/)
476
431
  so it can be inspected and installed with pip; you may modify your own copy but
477
432
  not distribute the changes. The packaged installer, `.exe`, `.dmg` and `.deb`
478
- builds are published from the public
479
- [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) repository.
433
+ builds are published on this repository's
434
+ [Releases](https://github.com/pyhttp2/pyhttp/releases) page and mirrored to
435
+ [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases), the old home,
436
+ so installs from before the move keep updating.
480
437
  Bundled open-source components are listed in
481
438
  [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
482
439
 
440
+ Postman is a trademark of Postman, Inc. pyhttp is an independent project and is
441
+ not affiliated with or endorsed by Postman, Inc.; the name is used only to
442
+ describe compatibility (importing Postman collections, running Postman-style
443
+ scripts).
444
+
483
445
  The app itself stays free. If paid extras ever appear, they will be optional
484
446
  add-ons, services or support under their own terms, never a restriction on who
485
447
  may use pyhttp.
@@ -1,6 +1,6 @@
1
- """pyhttp - a local, Postman-like HTTP client with a collection runner."""
1
+ """pyhttp - a local API client and alternative to Postman, with a collection runner."""
2
2
 
3
- __version__ = "2.0.1"
3
+ __version__ = "2.0.2"
4
4
  # sent with every request unless the user sets their own in Settings; the convention is "product/version (+url)"
5
5
  USER_AGENT = f"pyhttp/{__version__}"
6
6
  __license__ = "pyhttp Free License 1.0 (free for everyone; source not distributed)"
@@ -189,7 +189,7 @@ def main() -> None:
189
189
  from . import mcp
190
190
  mcp.main(sys.argv[2:], DEFAULT_DATA_DIR)
191
191
  return
192
- parser = argparse.ArgumentParser(prog="pyhttp", description="Local Postman-like HTTP client",
192
+ parser = argparse.ArgumentParser(prog="pyhttp", description="Local API client (alternative to Postman)",
193
193
  epilog="Headless runs for CI: pyhttp run --help")
194
194
  mode = parser.add_mutually_exclusive_group()
195
195
  mode.add_argument("--browser", action="store_true", help="open the UI in your web browser")
@@ -24,7 +24,7 @@ from . import (USER_AGENT, __version__, console, curl, db, mock, monitors, oauth
24
24
  from .templating import build_context, render
25
25
 
26
26
  STATIC_DIR = Path(__file__).parent / "static"
27
- DEFAULT_RELEASE_REPO = "pyhttp2/pyhttp-releases" # public repo that holds the .exe/.dmg releases
27
+ DEFAULT_RELEASE_REPO = "pyhttp2/pyhttp" # public repo whose Releases page holds the .exe/.dmg builds
28
28
  try: # written by packaging/build.py so packaged apps know where their releases live
29
29
  from ._build import GITHUB_REPO as _BUILT_REPO
30
30
  except ImportError: # pragma: no cover - source checkout
@@ -25,7 +25,7 @@ BODY_LIMIT = 40_000 # characters of a response body per tool result
25
25
 
26
26
  server = MCPServer(
27
27
  "pyhttp",
28
- instructions="A local HTTP client (Postman-like). Requests live in folders, can hold several named "
28
+ instructions="A local HTTP client (alternative to Postman). Requests live in folders, can hold several named "
29
29
  "bodies, tests and scripts, and use {{variables}} from the active environment and globals. "
30
30
  "send_request/send return the response; run executes many requests in order and reports.",
31
31
  )
@@ -31,7 +31,7 @@ from . import USER_AGENT
31
31
  FROZEN = bool(getattr(sys, "frozen", False))
32
32
  CASK = "pyhttp"
33
33
  TAP = "pyhttp2/pyhttp"
34
- TAP_URL = "https://github.com/pyhttp2/pyhttp-releases"
34
+ TAP_URL = "https://github.com/pyhttp2/homebrew-pyhttp"
35
35
  SUMS_FILE = "SHA256SUMS.txt"
36
36
  SELF_UPDATE_KINDS = ("installer", "portable", "brew")
37
37
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyhttp-app
3
- Version: 2.0.1
4
- Summary: A local, Postman-like HTTP client with a collection runner, scripts and an MCP server
3
+ Version: 2.0.2
4
+ Summary: Local API client and alternative to Postman: collection runner, Postman-compatible scripts, mock servers and an MCP server
5
5
  Author-email: pyhttp Dev Team <dev@pyhttp.com>
6
6
  License: # pyhttp Free License 1.1
7
7
 
@@ -147,62 +147,10 @@ Requires-Dist: pyyaml>=6.0
147
147
  Requires-Dist: mcp>=2
148
148
  Dynamic: license-file
149
149
 
150
- cd C:\Users\vishv\Documents\www\pyhttp\
151
- C:\Users\vishv\Documents\www\pyhttp\pyhttp\
152
- claude --dangerously-skip-permissions
153
- # todo
154
- - kill port
155
- lsof -t -i:8765 | xargs kill -9
156
-
157
- <!-- - both show waiting while running in parallel -->
158
- <!-- - pretty/ raw bar with response must not scroll with response - fix that
159
- - in headers give select all/unselect all button or checkbox
160
- - auto dropdown in Token from env/global variables
161
- - if get method gives error show prompt or Tip: that use post or any other method method
162
- - observed a weird bug that body 1 somehow was doing conflict with body 2, when only sending body 2 getting same error that i must see in body 1 for the response in body 2 can you check this and fix if any such issue can happen -->
163
-
164
- <!-- - automatic api tester with a timer, where it will send an report of times and alert if failed api api -->
165
- <!-- - give mcp so this tool data like api body and etc can be filled and managed by ai , make this fully manageable tool by using ai -->
166
- - Later build feedback form in www /Users/vishvendra/Documents/www/pyhttp.com and app /Users/vishvendra/Documents/www/pyhttp/
167
- - seo
168
-
169
-
170
- <!-- - update www with all the updates we just made -->
171
- <!-- - delete all older releases with my name vishvendra singh if possible but keep the release 1.9 and after -->
172
- <!-- - if response is pushed to bottom by down button to view body the body and and list of bodies component must stretch to the bottm will the response window right now it remains sname, also when click the button to bring the response from bottom to the right it hides body and if i try to click the separator and drag it shows weird behaviour and does not work properly fix these issues and make it better -->
173
- <!-- - dependent api - like token triggered automatically when any api is sent a call, so fetch token from using token api, where it will have a pm.environment.set(token) something like this - so it will set token in environment automatically and then call the pi - if put in as dependent api in any other api and set a time after which it must trigger automatically - like token has expired time - implement intelligently in a flow -->
174
- <!-- - remove my name and keep something like - "pyhttp Dev team - From the unknown to the unowned" like this - in tagline and owner etc at all the palces in website and tool in current or next releases -->
175
- <!-- - lets say if there are multiple bodies in api then in scripts i want to give an option to select from - perform test and Pre-request based on bodies 1 or 2 or 3 etc (name of body) so user can select if same test are to be perfomed for all bodies or different - pre-request and test - for each body - i told you to do this before but not able to see or find this change -->
176
- <!-- - run with csv - give sample file, also show multiple or single responses in api beside/below api definition or body for each run automatically -->
177
- <!-- - in current run on right hand side - write name of files in pop when clicked the tab - with little description, right now it is confusing - as user not understanding difference between api.json and api.body.json - do this change quickly and dont spend too much testing on it or build or relese there are more chaning i will be sending then test or do any other process afterward when i tell you -->
178
- <!-- - highly parallel request without sequence or allow to set in while trying to run on run name and confirmation screen also give button to skip and run directly without giving name -->
179
- <!-- - make default useragent - pyhttp and version -->
180
- <!-- - vertical partition compresses the search input box and "run selected" button which does not look good fix that on left hand side - fix ui/ux -->
181
- <!-- - settings menu seems like falling over each other give spacing and make better ui/ux -->
182
- <!-- - below button in bottom movies response window, can make this clearer so one can easily know what that button does or any other why make it easy ui/ux -->
183
- <!-- - put a hamburger menu on left hand side to show hide left hand sidebar -->
184
- <!-- - when there is an long error from api shown above the json response it adds horizontal scroller, i think you must text wrap that and must not add horizontal scroll in any case -->
185
- <!-- - tabs like api or body have very little vertical scroll, i think you must not show scroll anywhere instead put tabs above or below - and/or give this setting to set for user -->
186
- <!-- - rename Tests to scripts and there must be option to select body and apply test to that specific body or all body and separate test can be applied to separate bodies -->
187
- <!-- work on all of above intelligently and in such a way must be best decision from your research i want to make best http tool as per ui/ux and ease of use point of view -->
188
- <!-- - also i am thinking to make it free in license for everyone - what do you think - -->
189
- <!-- - if i click on any other tab it selects all the bodies, but it must save the state like selected body only even when tabs are changes or this app is opened or closed -->
190
- <!-- - give cancel button in place of sending when sending api call to cancel running call/calls -->
191
- <!-- - give select and enclose/open javascript with arrow in left beside line numbers -->
192
- <!-- - ctrl+enter in windows and command+enter must send it api call -->
193
- <!-- - clicking tabs must not change the box/card size in settings -->
194
- <!-- - close icon/button foer current/history right side bar -->
195
- <!-- - open/cose button for response bar, i mean hide it so one can view entire body similar for response there must option to maximize it to view entire response -->
196
- <!-- - must be able to move tabs left and right -->
197
- <!-- - check now must show loading icon and show status beside that only -->
198
- <!-- - current run and history not showing in mac/windows -->
199
- <!-- - auto release not working -->
200
- <!-- - instead of pm.test make it ph or py.test which you feel is good, i feel py. is good in Tests
201
- - pretty is showing too much space after each line in response of json
202
- - in tests i keep getting error - invalid systax ("<test script>", line 1) and failing in setting any variables -->
203
150
  # pyhttp
204
151
 
205
- A local, Postman-like HTTP client with a built-in collection runner, in its
152
+ A local API client and alternative to Postman — it imports Postman collections
153
+ and runs Postman scripts — with a built-in collection runner, in its
206
154
  own desktop window. Everything stays on your machine: requests live in a SQLite
207
155
  file, every run writes its responses to plain files, and the backend listens
208
156
  only on `127.0.0.1`.
@@ -390,8 +338,11 @@ pyhttp
390
338
  ```
391
339
 
392
340
  On Linux, install the GTK webview bindings first (see *Linux* below) or use
393
- `pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp-app` installs the
394
- same package through Homebrew (macOS and Linux, Intel and ARM).
341
+ `pyhttp --browser`. `brew install pyhttp2/pyhttp/pyhttp` installs the
342
+ same package through Homebrew (macOS and Linux, Intel and ARM; the tap is
343
+ [pyhttp2/homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp)) — or tap
344
+ once with `brew tap pyhttp2/pyhttp`, after which plain `brew install pyhttp`,
345
+ `brew upgrade pyhttp` and `brew install --cask pyhttp` all work.
395
346
 
396
347
  **Windows**: double-click `run.bat`. The window opens without a console.
397
348
  WebView2 ships with Windows 10/11.
@@ -498,7 +449,7 @@ Packaged builds bundle Python and every dependency, so users just double-click.
498
449
  |---|---|---|
499
450
  | Windows 10/11 | `pyhttp-<version>-windows-x64-setup.exe`: installer (per user, no admin rights, into `%LOCALAPPDATA%\Programs\pyhttp`, Start menu entry, optional desktop icon, uninstaller in *Apps*) | `%APPDATA%\pyhttp` |
500
451
  | Windows 10/11 | `pyhttp-<version>-windows-x64.exe`: portable, one file, no install | `%APPDATA%\pyhttp` |
501
- | macOS 11+ | `brew tap pyhttp2/pyhttp https://github.com/pyhttp2/pyhttp-releases && brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
452
+ | macOS 11+ | `brew install --cask pyhttp2/pyhttp/pyhttp`, or `pyhttp-<version>-macos-arm64.dmg` (drag pyhttp to Applications) | `~/Library/Application Support/pyhttp` |
502
453
  | Ubuntu 22.04+, Debian 12+ | `sudo apt install ./pyhttp-<version>-linux-amd64.deb`: installs to `/usr/lib/pyhttp`, adds `pyhttp` to the PATH and an app-menu entry; uses the distro's GTK and WebKitGTK (pulled in as dependencies) | `~/.local/share/pyhttp` |
503
454
 
504
455
  Running from source keeps using `./data`. In the packaged app, output that would
@@ -559,10 +510,14 @@ python packaging/bump.py 0.1.2
559
510
  ```
560
511
 
561
512
  That sets `__version__`, commits, creates the tag `v0.1.2` and pushes both. The
562
- tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`,
563
- the license files and the Homebrew cask to the public
564
- [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) repository (needs the
565
- `RELEASE_TOKEN` secret). The Windows runner installs Inno Setup with Chocolatey when
513
+ tag run publishes the installer, the portable `.exe`, the `.dmg`, `SHA256SUMS.txt`
514
+ and the license files to this repository's Releases page, uploads `pyhttp-app` to
515
+ PyPI (secret `PYPI_API_TOKEN`), updates the Homebrew tap
516
+ ([homebrew-pyhttp](https://github.com/pyhttp2/homebrew-pyhttp): cask + formula)
517
+ and mirrors everything to
518
+ [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) so installs from
519
+ before the move keep updating (the mirror and taps need the `RELEASE_TOKEN`
520
+ secret, a fine-grained PAT with Contents: write on those two repositories). The Windows runner installs Inno Setup with Chocolatey when
566
521
  it is not already there. The in-app updater refuses a release without `SHA256SUMS.txt`,
567
522
  so keep that step in the workflow. A tag whose version differs from `__version__` is refused,
568
523
  because the release name, file names and the in-app update check all come from
@@ -624,11 +579,18 @@ is not allowed, and the name and logo stay with the project. The source code is
624
579
  published on PyPI as [`pyhttp-app`](https://pypi.org/project/pyhttp-app/)
625
580
  so it can be inspected and installed with pip; you may modify your own copy but
626
581
  not distribute the changes. The packaged installer, `.exe`, `.dmg` and `.deb`
627
- builds are published from the public
628
- [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases) repository.
582
+ builds are published on this repository's
583
+ [Releases](https://github.com/pyhttp2/pyhttp/releases) page and mirrored to
584
+ [pyhttp-releases](https://github.com/pyhttp2/pyhttp-releases), the old home,
585
+ so installs from before the move keep updating.
629
586
  Bundled open-source components are listed in
630
587
  [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
631
588
 
589
+ Postman is a trademark of Postman, Inc. pyhttp is an independent project and is
590
+ not affiliated with or endorsed by Postman, Inc.; the name is used only to
591
+ describe compatibility (importing Postman collections, running Postman-style
592
+ scripts).
593
+
632
594
  The app itself stays free. If paid extras ever appear, they will be optional
633
595
  add-ons, services or support under their own terms, never a restriction on who
634
596
  may use pyhttp.
@@ -11,7 +11,7 @@ build-backend = "setuptools.build_meta"
11
11
 
12
12
  [project]
13
13
  name = "pyhttp-app"
14
- description = "A local, Postman-like HTTP client with a collection runner, scripts and an MCP server"
14
+ description = "Local API client and alternative to Postman: collection runner, Postman-compatible scripts, mock servers and an MCP server"
15
15
  readme = "README.md"
16
16
  requires-python = ">=3.10"
17
17
  license = { file = "LICENSE.md" }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes