# posting **Repository Path**: majinlong/posting ## Basic Information - **Project Name**: posting - **Description**: No description available - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: auth - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-21 - **Last Updated**: 2024-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Posting. Posting is an powerful HTTP client which brings Postman-like functionality to your terminal. It's designed for those who prefer working in a terminal environment and enjoy fast, keyboard-centric user interfaces. screenshot-19jun24-4 It's still a work in progress and far from feature complete. Please don't open any bug reports yet - although I'm happy to hear ideas/suggestions! ## Installation Posting can be installed via [`pipx`](https://pipx.pypa.io/stable/): ```bash pipx install posting ``` Python 3.11 or later is required. More installation methods (`brew`, etc) will be added soon. ## Collections Requests can be stored inside "collections" on your file system. A collection is simply a directory containing one or more requests. Each request is stored as a simple YAML file, suffixed with `.posting.yaml` - easy to read, understand, and version control! Here's a quick example of a `*.posting.yaml` file. ```yaml name: Create user description: Adds a new user to the system. method: POST url: https://jsonplaceholder.typicode.com/users body: |- { "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com" } headers: - name: Content-Type value: application/json - name: Some-Header value: Some value enabled: false params: - name: sendWelcomeEmail value: 'true' ``` To open a collection, simply pass the path to the `--collection` option when launching Posting: ```bash posting --collection path/to/collection ``` The supplied directory will be recursively searched for files matching `**/*.posting.yaml`, and they'll appear in the sidebar. If you don't supply a collection directory, the current working directory will be used. To save the currently open request, press ctrl+s. ## Navigation Posting can be navigated using either mouse or keyboard. ### Jump mode Jump mode is the fastest way to get around in Posting. Press ctrl+o to enter jump mode. A key overlay will appear on the screen, allowing you to jump to any widget by pressing the corresponding key. https://github.com/darrenburns/posting/assets/5740731/5e7cdf57-90b2-4dba-b468-0057c6ef1806 ### Tab navigation tab and shift+tab will move focus between widgets, and j/k will move around within a widget. ### Keyboard shortcuts Important keyboard shortcuts are displayed at the bottom of the screen. However, there are many other shortcuts available - these will be documented soon. ## Command palette Some functionality in Posting doesn't warrant a dedicated keyboard shortcut (for example, switching to a specific theme), and can instead be accessed via the _command palette_. To open the command palette, press ctrl+p. https://github.com/darrenburns/posting/assets/5740731/a199e5f2-5621-42e6-b239-a796d1dc144a ## Animation You can turn off animations by setting the environment variable `TEXTUAL_ANIMATIONS=none`. ## Planned Features - **Keyboard Friendly**: Navigate and iterate on your APIs using simple keyboard shortcuts. - **File System Storage**: Your collections are saved as files, meaning you can easily sync them using version control or your favorite cloud provider. - **Multiplatform**: Run on MacOS, Linux and Windows. - **Template Variables**: Define variables and substitute them into your requests. - **Powerful Text and JSON Editor**: Offers tree-sitter powered syntax highlighting, undo/redo, copy/paste, and more. - **Runs Over SSH**: Send requests from a remote host via SSH. - **Your Idea Here**: Please let me know if you have opinions on the features above, or any other ideas!