• dm03514 a month ago

    I just started using hurl a couple months ago.

    For my uses it's great that it has both test suite mode and individual invocation mode. I use it to execute a test suite of HTTP requests against a service in CI.

    I'm not a super big fan of the configuration language, the blocks are not intuitive and I found some lacking in the documentation assertions that are supported.

    Overall the tool has been great, and has been extremely valuable.

    I started using interface testing when working on POCs. I found this helps with LLM-assisted development. Tests are written to directly exercise the HTTP methods, it allows for fluidity and evolution of the implementations as the project is evolving.

    I also found the separation of testing very helpful, and it further enforces the separation between interface and implementation. Before hurl, the tests I wrote would be written in the test framework of the language the service is written in. The hurl-based tests really help to enforce the "client" perspective. There is no backdoor data access or anything, just strict separation betwen interface, tests and implementation :)

    • jicea a month ago

      Maintainer here, thanks for the feedbacks. 6-7 years ago, when we started working on Hurl, we started with a JSON then a YAML file format. We gradually convinced ourself to write a new file format and I completely understand that it might feel weird. We tried (maybe not succeeded!) to have something simple for the simple case...

      I'm really interested by issues with the documentation: it can always be improved and any issues is welcome!

    • 1a527dd5 a month ago

      Yeah love Hurl, we stared using it back in 2023-09.

      We had a test suite using Runscope, I hated that changes weren't versioned controlled. Took a little grunt work and I converted them in Hurl (where were you AI?) and got rid of Runscope.

      Now we can see who made what change when and why. It's great.

      • johns a month ago

        I also hated that Runscope changes weren't version controlled :) We had started work on that but then things went sideways.

        • 1a527dd5 25 days ago

          Oh wow, of course I would run into the founder of Runscope on here.

          Loved Runscope it served it's purpose until something came along that that offered the same + version control.

      • jicea a month ago

        Hi Hurl maintainer here, happy to answer any question and get feedbacks!

        • gavinray a month ago

          So, myself and many folks I know have taken to writing tests in the form of ".http" files that can be executed by IDE extensions in VS Code/IDEA.

          Those basically go in the form

             POST http://localhost:8080/api/foo
             Content-Type: application/json
          
             { "some": "body" }
          
          And then we have a 1-to-1 mapping of "expected.json" outputs for integration tests.

          We use a bespoke bash script to run these .http file with cURL, and then compare the outputs with jq, log success/failure to console, and write "actual.json"

          Can I use HURL in a similar way? Essentially an IDE-runnable example HTTP request that references a JSON file as the expected output?

          And then run HURL over a directory of these files?

          • digikata a month ago

            You can use hurl in this way. I have projects with a test directory of hurl files, one hurl file per test case. The cases can run one or more http requests. The hurl file can reference external files, capture values from responses for subsequent requests, validate status and outputs. Hurl has various test runner modes and will optionally output overall test results in various parsable formats if you have a larger reporting framework that you would like to hook into.

            • gavinray a month ago

              That's great to know! Do you have an example on-hand by chance?

              If that's possible, I guess the only thing I'd request is interopability with the REST Client ".http" files that VS Code/JetBrains IDE's support then.

              UPDATE: Found it, looks like you can do it via the below

                  POST https://example.org/api/tests
                  Content-Type: application/json
                  file,insert_user.request.json;
              
                  [Asserts]
                  body == file,insert_user.expected.json;
              
              So that just leaves the IDE integration bit.
            • xnorswap a month ago

              I like this approach.

              Is your expected.json the actual response body, or is it an object containing body, status, header values, and time-taken, etc?

              • gavinray a month ago

                It's only the response body, but that's due to not having a usecase to validate headers or status code.

                I really like it because it serves 3 purposes:

                - API docs/examples that you can interact with

                - Test cases

                - Manually invoking API endpoints when working on the underlying code, in an iterative loop

            • hiddew a month ago

              Hurl is underappreciated for writing nice and maintainable HTTP-level test suites. Thanks for the tool!

              • LadyCailin a month ago

                Can you organize with the VSCode rest client folk(s?) to come up with a standard for http files?

                • mikmoila 24 days ago

                  This is great idea.

                • airstrike a month ago

                  Arguably off-topic but I just want to say few naming choices give me more satisfaction than Hurl

                  • jiehong a month ago

                    Thanks a lot for maintaining it!

                    Where do you see hurl in the next 2 years?

                    • jicea a month ago

                      Obviously better IDEs integration, support for gRPC, Websocket would be very cool.

                      A favorite of mine is to be available through official `apt`: there has been some work but it's kind of stuck. The Debian integration is the more difficult integration we have to deal. It's not Debian fault, there are a lot of documentation but we've struggled a lot and fail to understand the process.

                      [1]: https://github.com/Orange-OpenSource/hurl/issues/366

                      • akdev1l a month ago

                        Looks like you don’t have Fedora package either

                        If I find time I could throw a spec file + ci/cd workflow to get you going that way too

                    • nikeee a month ago

                      I use Hurl for some time now and even contributed. What are the current chances for getting some form of includes?

                      • draw_down a month ago

                        [dead]

                      • perrygeo a month ago

                        Hurl is awesome. A while back I ported a small web service from Python to Rust. Having rigorous tests of the public API is amazing; a language-independent integration test! I was able to swap it out with no changes to the public API or website.

                        Worth mentioning that using Hurl in Rust specifically gives you a nice bonus feature: integration with cargo test tooling. Since Hurl is written in Rust, you can hook into hurl-the-library and reuse your .hurl files directly in your test suite. Demo: https://github.com/perrygeo/axum-hurl-test

                        • hliyan a month ago

                          I must say, the sample section[1] does an excellent job of making a case for the tool, especially to people who are inclined to make a snap judgement about the usefulness of the tool within the first 5 minutes (I'm sometimes guilty of this).

                          [1] https://github.com/Orange-OpenSource/hurl?tab=readme-ov-file...

                          • twodave a month ago

                            I took a lot of inspiration from this project when designing my own HTTP testing tool[0]. We needed to be able to run hundreds of tests quickly, and in parallel. If that is something you need and you like Hurl, then you might like Nap also.

                            [0] https://naprun.dev

                            • bitpush a month ago

                              Is the config same/different/similar than hurl? Do you have a page that outlines the differences, if any?

                              • twodave 25 days ago

                                The main difference is that nap works off of YAML. You can get an idea of how it works by clicking on "The Basics"[0] on the left-hand side of the page.

                                [0] https://naprun.dev/the-basics/

                            • chvid a month ago

                              Looks a bit like this:

                              https://marketplace.visualstudio.com/items?itemName=humao.re...

                              Which is a banger VS Code extension for all sorts of http xyz testing.

                              • krisgenre a month ago
                                • vyskocilm a month ago

                                  https://github.com/mistweaverco/kulala.nvim is an another restish (it can do gRPC to) plugin for neovim. It is intended to be compatible with a Jetbrains as much as possible.

                                  • 7d24cbd0556f442 a month ago

                                    neovim has one, too! https://github.com/rest-nvim/rest.nvim

                                    (After I have seen the IntelliJ one from a colleague I was searching for one like that in neovim. That's the best one I found. It's not perfect, but it works.

                                    Edit: The tool from OP looks very neat though. I will try it out. Might be a handy thing for a few prepared tests that I run frequently

                                  • jiehong a month ago

                                    Yep, just editor independent which is a huge deal IMO

                                    • lowwave a month ago

                                      there is also Bruno and Bru seems quite similar this: https://docs.usebruno.com/bru-lang/overview

                                      It is targeted toward more postman crowd though. May not be as lightweight.

                                      • LadyCailin a month ago

                                        It’s not nearly as lightweight, and one of the major dealbreakers for postman and equivalents (even ignoring all the drama with postman) is that you have to import and export the data in the client in order to get some text file you can just commit to repo. For my team, that’s a dealbreaker, because it means that people write entire suites of stuff, and never commit them, meaning other people end up doing the same work over and over.

                                        • argentinian a month ago

                                          In Bruno you don't have to import or export to get a text file.

                                          • LadyCailin a month ago

                                            Ahhh, ok. I think I’m thinking about Insomnia, which is basically (in fact?) a fork of Postman. Anyways, that fact is what made Postman a dealbreaker for me, even before the drama. Another thing I like about Rest Client is that the configuration is just a text file, so bearer token etc can be updated via script that runs in a loop.

                                            Rest Client has a few cons though, like request chaining.

                                            • argentinian a month ago

                                              In Bruno the config also is just a text file.

                                              I was using Rest Client and was very happy with it, but once I needed Rest Client to use my computer's NO_PROXY env variable to avoid using the proxy for a certain url, and I found it was not possible to do that with Rest Client. That's the only reason I had to look for an alternative tool. After an analysis, I liked Bruno and Hurl. I didn't try hurl yet.

                                    • mcescalante a month ago

                                      yep, I've played with Hurl and find it nice but recently have been leaning into the .http stuff more. IntelliJ has it built in, there's the plugin you linked, and then for CLI i've used httpYac. No "vendor lock in", really easy to share with copy & paste or source control.

                                      • gotimo a month ago

                                        +1 On HttpYac, it's been really nice to get started with and growing into a more powerful API testing suite over time

                                      • undefined a month ago
                                        [deleted]
                                      • 3eb7988a1663 a month ago

                                        I think the idea is nice, but I am struggling for why I should use it. I write using Django, which has plenty of hooks for testing within the framework. Why switch to a tool which is blind to my backend and is going to create more work to keep in sync? At minimum, I lose the ability to easily drop into my debugger to inspect why a result went wrong.

                                        There is probably something to be said for keeping a hard boundary between the backend and testing code, but this would require more effort to create and maintain. I would still need to run the native test suite, so reaching out to an external tool feels a little weird. Unless it was just to ensure an API was fully generic enough for people to run their own clients against it.

                                        • thiht a month ago

                                          > Why switch to a tool which is blind to my backend and is going to create more work to keep in sync? At minimum, I lose the ability to easily drop into my debugger to inspect why a result went wrong.

                                          I don't use hurl but I've used other tools to write language agnostic API tests (and I'm currently working on a new one) so here's what I like about these kinds of tests:

                                          - they're blind to the implementation, and that's actually a pro in my opinion. It makes sure you don't rely on internals, you just get the input and the output

                                          - they can easily serve as documentation because they're language agnostic and relatively easy to share. They're great for sharing between teams in addition to or instead of an OpenAPI spec

                                          - they actually test a contract, and can be reused in case of a migration. I've worked on a huge migration of a public API from Perl to Go and we wanted to keep relatively the same contracts (since the API was public). So we wrote tests for the existing Perl API as a non-regression harness, and could keep the exact same tests for the Go API since they were independent from the language. Keeping the same tests gave us greater confidence than if we had to rewrite tests and it was easy to add more during the double-run/A-B test period

                                          - as a developer, writing these forces you to switch context and become a consumer of the API you just wrote, I've found it easier to write good quality tests with this method

                                          • sorashi a month ago

                                            It's just an alternative to Postman and similar so you don't have to start a whole damn electron window just to test a few http requests. It's somewhere between a curl script and Postman, so it hits the right spot for many.

                                            • jicea a month ago

                                              We used Hurl to go from a ktor web server to a spring boot rewrite (Java/Kotlin stack). It was a breeze to have a kind of specifications test suite independent of the server stack and helped us a lot in the transition.

                                              Another benefit is we built a Docker image for production and wanted to have something light and not tight to the implementation for integration tests.

                                              • CoolCold 25 days ago

                                                There is no obligation on you to use it, especially if you have better tooling for the tasks.

                                                For my team needs, I see benefits of using self-contained tool which doesn't require any extra modules to be installed and venv-like activated (this is a great barrier when ensuring others can use it too). Not even mention it will run fast.

                                                Testing headers is particularly nice, so can test configuration of webservers and LBs/CDNs.

                                              • kalli a month ago

                                                This looks interesting. Longtime user of the Vscode-restclient, but have been moving over to httpyac lately for the scripting and cli use. Will take a look to see if hurl is a good fit.

                                                One annoying thing I've found in testing these tools is that a standard hasn't emerged for using the results of one request as input for another in the syntax of `.http` files. These three tools for instance have three different ways of doing it:

                                                * hurl uses `[Captures]`

                                                * Vscode-restclient does it by referencing request names in a variable declaration (like: `@token = {{loginAPI.response.body.token}}`).

                                                * While httpyac uses `@ref` syntax.

                                                From a quick round of testing it seems like using the syntax for one might break the other tools.

                                                [1]: https://hurl.dev/docs/capturing-response.html

                                                [2]: https://github.com/Huachao/vscode-restclient

                                                [3]: https://httpyac.github.io/guide/metaData.html#ref-and-forcer...

                                                • jicea a month ago

                                                  Guilty to have created yet-another-format for HTTP client! To "mitigate" this issue, you can use `hurlfmt` (distributed along `hurl`) that would allow you to export a Hurl file to JSON. You could then go from this JSON to another... It's not magic but it can help if you're going to change from Hurl to another thing.

                                                  • kalli a month ago

                                                    No worries, it's also interesting to see different peoples approaches to the best syntax for this. Exporters/importers do make life a bit easier I suppose.

                                                    I don't know what the mechanism/incentive for getting a standard would be either. Probably most likely would be if there was one clear "winner" that everyone else felt the need mirror.

                                                    In any case, appreciate the reply and the tool. Good luck with it.

                                                  • jiggawatts a month ago

                                                    What's really special is that Visual Studio Code and Visual Studio both have .HTTP files... which are incompatible with each other.

                                                    Conway's Law in action, ladies and gentlemen.

                                                  • a57721 a month ago

                                                    In the JVM projects, I use Karate for integration tests: https://github.com/karatelabs/karate

                                                    It gives you full control of constructing requests and assertions because test scenarios may include arbitrary JavaScript.

                                                    • the_arun a month ago

                                                      Isn't this similar to HTTP Client tool available for IntelliJ? - https://www.jetbrains.com/help/idea/http-client-in-product-c...

                                                    • mdtrooper a month ago

                                                      I love this kind of tools (easy, simple and cli). I remember that https://httpie.io/cli or https://jqlang.org/ .

                                                      • manithree a month ago

                                                        With nice editor integration (especially emacs), hurl is a good postman replacement.

                                                        Kinda niche, but I wrapped libhurl to make it really easy to make an AWS Lambda availability monitor out of a hurl file https://gitlab.com/manithree/hurl_lambda

                                                        • Thaxll a month ago

                                                          It looks interesting, I had a look a the dependencies, 1.5k lines for a cli tool to test http calls ( and more ), is it the norm in Rust?

                                                          https://github.com/Orange-OpenSource/hurl/blob/master/Cargo....

                                                          • ewpratten a month ago

                                                            You should probably be looking at the Cargo.toml file(s) (for direct dependencies at least) instead of the lock file as the lock file will include dependencies used for dev/testing.

                                                          • laerus a month ago

                                                            What's missing from Hurl is snapshot testing. After using `insta` for testing APIs, I cannot go back.

                                                            • porker a month ago

                                                              Is this https://insta.rs/? What are the benefits you've found with snapshot testing?

                                                              • laerus a month ago

                                                                Greatly reduced boilerplate. Diffing snapshots and providing previews to accept or reject changes is also more robust and user friendly.

                                                              • whilenot-dev a month ago

                                                                What's your value proposition for snapshots and why can't that already be fulfilled with full body checks? https://github.com/Orange-OpenSource/hurl?tab=readme-ov-file...

                                                                • laerus a month ago

                                                                  Snapshots diff current with previous output and I only have to accept or reject the diff. I don't have to write the expected response myself. Snapshots can also stub out parts of the response that are not determistic.

                                                                  • adelineJoOs a month ago

                                                                    > Snapshots can also stub out parts of the response that are not determistic.

                                                                    TIL! The way I knew to do it was to have a mock implementation that behaved like the real thing, expect for data/time/uuids/..., where there was just a placeholder. Snapshot tests being able to "mask" those non-deterministic parts sounds cool!

                                                                  • adelineJoOs a month ago

                                                                    tbh, that seems pretty close to what I would call snapshot testing already. What people usually do with it is using it for more broadly compared to API testing (for example, I currently use it to test snapshots of a TUI application I am developing) - i.e. you can use it whenever your test is of the form "I have something that I can print in some way and that should look the same until I explicitely want it to look differently in the future". There are a bit more bells and wizzles - For example, it is nice that one does not have to write the initial snapshots oneself. You write the test, execute, it creates the resulting file, then you review and commit that - handy little workflow!

                                                                  • CommonGuy a month ago

                                                                    We are working on snapshot testing for Kreya, expected to come in August. You might want to check it out :)

                                                                  • yoavm a month ago

                                                                    The one thing I never understood about the Hurl format is why the response status code assertion happens at the request section and not under the `[Asserts]` section. I wonder what the rationale behind that is.

                                                                    • jicea a month ago

                                                                      A simple GET with a status code is just

                                                                        GET http://foo.com
                                                                        HTTP 200
                                                                      
                                                                      You could write also

                                                                        GET http://foo.com
                                                                        HTTP *
                                                                        [Asserts]
                                                                        status == 200
                                                                      
                                                                      HTTP serves as a marker of the response section
                                                                    • infogulch a month ago

                                                                      Hurl has been great for testing in my RAD templating web server project. Like dm03514 says itt, 'The hurl-based tests really help to enforce the "client" perspective.' It's packaged for 3 application environments including a docker image (x2 archs, x3 oses) and with Hurl its easy to ensure the tests pass at the client level in all three environments.

                                                                      It would be nice to have fancy-regex; today I tried to write a regex to match a case like this ~ <link href="/assets/reset.css\\?hash=(.*)" integrity="\\1" rel="stylesheet"> ~ but the regex crate (and thus hurl asserts) can't do backreferences so I guess I'll just live without checking that these two substrings match.

                                                                      I wish there was some way to test streamed updates / SSE. Basically, open a connection and wait, then run some other http requests, then assert the accumulated stream from the original connection. https://github.com/Orange-OpenSource/hurl/discussions/2636

                                                                      • lelanthran a month ago

                                                                        For automated testing I use hurl, but my personal dev roadmap is to create another tool.

                                                                        The deficiencies in huel with client state management is not easy to fix.

                                                                        What I'd like is full client state control with better variable management and use.

                                                                        For my last project I used Python to write the tests, which appears to work well initially. Dunno how well it will hold up for ongoing maintenance.

                                                                        • zoidb a month ago

                                                                          This looks great, would definitely use it for testing if websocket support ever gets added https://github.com/Orange-OpenSource/hurl/issues/1096

                                                                          • mikmoila 24 days ago

                                                                            Very interesting tool; I've done something quite similar by implementing a CLI-mode interpreter to VS Code Rest-client (https://marketplace.visualstudio.com/items?itemName=humao.re...) files, with a support of executing a test-code (Javascript) against the result of http operations. The idea was to have a tool which could run .http files in batch mode, and also to execute the selected set of http operations concurrently.

                                                                            • cyri a month ago

                                                                              Nice. This looks way better than this one written in Go: https://github.com/vdobler/ht it uses hjson.

                                                                              We used it very often a couple of years ago. Will try hurl.

                                                                              • antisceptic a month ago

                                                                                Is that POST in the readme sending the password in the query params? Is this shorthand or literally adding them to the params?

                                                                                I don't really feel the need for a curl replacement. In the past I've used httpie which is pretty slick but I end up falling back to writing tests in python using requests library.

                                                                                Maybe I'm not the target audience here, but I should still say something nice I guess. It's nice that it's written in Rust, and open source tooling is in need of fresh projects ever since everyone started bunkering up against the AI monolith scraping all their work. We should celebrate this kind of project, I just wish I had a use for it.

                                                                                • jicea a month ago

                                                                                  The POST in the README is going to send the params in the request body "url form encoded" like a form in a web page. There are more samples on the doc site [1].

                                                                                  Regarding curl, Hurl is just adding some syntax to pass data from request to request and add assert to responses. For a one time send & forget request, curl is the way, but if you've a kind of workflow (like accessing an authentified resource) Hurl is worth a try. Hurl uses libcurl under the hood and you've an option `--curl` to get a list of curl commands.

                                                                                  [1]: https://hurl.dev/docs/samples.html

                                                                                  • mrcarrot a month ago

                                                                                    > The POST in the README is going to send the params in the request body "url form encoded" like a form in a web page.

                                                                                    Is there a different POST request in the readme or are you saying that this example is going to send the "user" and "password" params in the request body?

                                                                                    > POST https://example.org/login?user=toto&password=1234

                                                                                    That seems really surprising to me - how would you then send a POST request that includes query string parameters? The documentation on form parameters [1] suggests there's an explicit syntax for sending form-encoded request parameters

                                                                                    [1]: https://hurl.dev/docs/request.html#form-parameters

                                                                                    • jicea a month ago

                                                                                      Ah sorry for both, the README sample is here from the start (4 years) ago that I didn't take time to read it with a fresh eye:

                                                                                        POST https://acmecorp.net/login?user=toto&password=1234
                                                                                      
                                                                                      In the README is doing a POST request with user and paasword parameter in the URL.

                                                                                        POST https://acmecorp.net/login
                                                                                        [Form]
                                                                                        user: toto
                                                                                        password: 1234
                                                                                      
                                                                                      Is a more traditional POST with user and password in the body. Probably going to update the READMEs sample Issue created here [1]!

                                                                                      [1]: https://github.com/Orange-OpenSource/hurl/issues/4151

                                                                                  • ankitrgadiya a month ago

                                                                                    I see it more as a Postman replacement than curl. When I’m working on a set of APIs, I can quickly write a Hurl file with different combinations that I’m working on. There are usually editor integrations to run individual requests. Then I can share the same Hurl file to my team or commit it in the repo.

                                                                                    • tra3 a month ago

                                                                                      Check out tavern if you’re in python-land. Pretty pleasant way to write declarative API tests.

                                                                                      • undefined a month ago
                                                                                        [deleted]
                                                                                      • undefined a month ago
                                                                                        [deleted]
                                                                                        • gabesullice a month ago

                                                                                          This looks awesome. I've searched for something like this many times and made a half dozen half-hearted attempts to build it too. Great job!

                                                                                          • globular-toast a month ago

                                                                                            Can you share "fixtures" amongst tests? For example, I wouldn't want to have to copy/paste the signup and login process for each type of user across hundreds of tests.

                                                                                            What about test isolation? Are people using something else to "prime" the service before/after running these tests?

                                                                                            • renegat0x0 a month ago

                                                                                              I created something different yet similar.

                                                                                              You make GET request to server with any of supported crawlers and obtain result in JSON

                                                                                              https://github.com/rumca-js/crawler-buddy/

                                                                                              Supports request, selenium, Httpx, curl cffi, etc

                                                                                              • johns a month ago
                                                                                                • jorgeleo a month ago

                                                                                                  So we are not doing telnet anymore?

                                                                                                  • zackify a month ago

                                                                                                    Oh wow! This reminds me so much of what I was trying to do almost 10 years ago but I was too much of a noob to make it make more sense haha.

                                                                                                    https://github.com/zackify/legible

                                                                                                    • genericspammer a month ago

                                                                                                      Can you have different environments or profiles or whatever, with different global variables?

                                                                                                    • sanix-darker 23 days ago

                                                                                                      Is it me or, they took inspiration from : https://github.com/Sanix-Darker/dycow

                                                                                                      • ninetyninenine a month ago

                                                                                                        This is cool, but also genuine question why this over some scripting language that can easily do http calls as well?

                                                                                                        I don’t think the DSL is significantly easier than a PL and it’s more limited to?

                                                                                                        Is it because of raw speed or ease of reading the DSL?

                                                                                                        • kqr a month ago

                                                                                                          > It's somewhere between a curl script and Postman

                                                                                                          Sounds a lot like Emacs' restclient-mode, and I can absolutely see the appeal for those which don't already have an Emacs session open.

                                                                                                          • dotancohen 23 days ago

                                                                                                            As a Postman user, who uses Org Mode with Evil, can you sell me on Emacs' restclient-mode?

                                                                                                            • iLemming 22 days ago

                                                                                                              You don't need to "buy" restclient, want you want is to understand Org-mode. Org-mode is a literate programming environment, you can run code snippets and "pipe" the results into one another. So, this is how I usually test my API endpoints - I would use ob-http, or verb.el, or restclient (although iirc this one no longer maintained) and then make a simple call to an endpoint, then I can pipe the results into a Clojure source block passing the data in, where I can easily parse the json and slice, dice, group and filter on the data. You can do the same thing in Python or Javascript or R (or whatever) source block. Then you can spit it out as is or pipe into another block for further tranformation. Very often I have to query a SQL DB to retrieve the payload I need to send to the API, that all I also do right there, in the same context.

                                                                                                              What's great is that all my experimentation is "reproducible", and all of it is in my notes. Notes that are easily searchable, exportable (e.g. for a blog content), etc.

                                                                                                              I can easily add links to some relevant PDFs, and youtube vids right there. I can start annotating those pdfs, where my notes will be interwoven with my API research. I can watch videos while controlling playback from Emacs, without having to switch to the app - it's very nice when taking notes. I can retrieve the transcript, send it to LLM, get the summary of the video and add it to my notes.

                                                                                                              If I come up with something that I'd like to memorize better, I can easily export chunks as Anki cards. That information is also within my notes. I can easily find it, edit it, etc. I don't need to navigate multiple different apps to get this work done.

                                                                                                              • dotancohen 22 days ago

                                                                                                                Thank you. I didn't mean to literally sell me something, rather to explain it such that I would see how it could fit into my workflow. Which you did.

                                                                                                                I do use Org mode, but only for simple personal notes. When I get home I'll explore using it as a REST client. They always told me that Emacs is a great OS, that just lacks a decent text editor.

                                                                                                                • iLemming 22 days ago

                                                                                                                  Of course. Here are some practical examples of passing data between org mode source blocks¹.

                                                                                                                  I love Emacs, but honestly Org-mode is such a treasure, a gem that the only regret I have is not discovering it sooner. It is a truly fantastic tool. I manage my entire life in it - I have my work notes and personal journal in it - I use Org-Roam. All my LLM chats are in Org-mode. My research and learning materials, my flashcards. I use it for pomodoro. I manage my dotfiles with Org-mode - it makes my entire system "immutable", I don't have to manipulate files individually - I do it from one place. Shit, I'm even reading your comment right now in Org-mode outline format¹. The value of plain text is absolutely underestimated. Once you see it, it's really difficult to give it up. And you'd ask yourself "give it up in exchange for what?" So you can keep searching for a "better and shinier" tool whenever you need to perform a fartworthy piece of task? A tool that has its own set of rules, and doens't even let you rebind keys or change colors?

                                                                                                                  ___

                                                                                                                  ¹ https://www.reddit.com/r/emacs/comments/1hbi751/passing_data...

                                                                                                                  ² https://news.ycombinator.com/item?id=44264368

                                                                                                                  • dotancohen 22 days ago

                                                                                                                    Thank you! Just so you know, Reddit removed the examples. Maybe this weekend I'll see if one of the popular LLMs can help provide examples.

                                                                                                                    • iLemming 22 days ago

                                                                                                                      Yeah, Reddit unfortunately turned into p̶u̶m̶p̶k̶i̶n̶ Twitter for me. I had over 10K followers on Twitter but had to let it go because it turned into an absolute cesspool. I guess Reddit isn't any better.

                                                                                                                      https://news.ycombinator.com/item?id=44368684

                                                                                                                  • kqr 22 days ago

                                                                                                                    Emacs has a great text editor, and has had for a few years. If you have not given Evil mode a fair chance, you definitely should.

                                                                                                                    • dotancohen 21 days ago

                                                                                                                      I most certainly use Evil. Thank you!

                                                                                                            • the_arun a month ago

                                                                                                              If I want to open a modal & check something, could it simulate clicking on open modal button? Or is it first level for now (without any support for interactions / javascript magic)

                                                                                                              • jicea a month ago

                                                                                                                Hurl works only on the HTTP layer, there is no JavaScript engine. If your modal open a form that will trigger some kind of XHR, you'll "simulate" the HTTP traquets that the form modal could have done. Hurl is not a kind of Playwright for instance.

                                                                                                              • jcmfernandes a month ago

                                                                                                                It's nice, and there's an emacs mode for it: https://github.com/JasZhe/hurl-mode

                                                                                                                • WhitneyLand a month ago

                                                                                                                  One thing not really advertised about Claude Code is it makes all command line tools plain text/plain English.

                                                                                                                  “Get data from the last log entry in <file> and post it to <url>”

                                                                                                                  • epalm a month ago

                                                                                                                    This is interesting. I’m wondering how programmable this is. Would this project (or any similar ones) be able to POST a json payload with a field set to “now()”?

                                                                                                                    • davidcalloway a month ago

                                                                                                                      The main thing I find missing with hurl is an rc file.

                                                                                                                    • wiradikusuma a month ago

                                                                                                                      IntelliJ has had this "plain text HTTP" feature for a while. I'm wondering if it is backed by Hurl?

                                                                                                                    • kaan_keskin a month ago

                                                                                                                      this looks nice. is it possible to set a variable after a request and use it later in another request?

                                                                                                                      • mhio a month ago

                                                                                                                        Yeah...

                                                                                                                            [Captures]
                                                                                                                            csrf_token: xpath "normalize-space(//meta[@name='_csrf_token']/@content)"
                                                                                                                        
                                                                                                                        The use the name with mustaches

                                                                                                                            {{csrf_token}}
                                                                                                                        
                                                                                                                        - https://hurl.dev/docs/capturing-response.html
                                                                                                                        • kaan_keskin 24 days ago

                                                                                                                          i'm going to definitely give this a try. looks good

                                                                                                                      • deepsun a month ago

                                                                                                                        I believe it's built-in to IntelliJ, just create a file with .https extension.

                                                                                                                        • deepsun 25 days ago

                                                                                                                          I mean .http

                                                                                                                        • lambda-science a month ago

                                                                                                                          Isn't that very similar to Jetbrains HTTP Client ?

                                                                                                                          • molszanski a month ago

                                                                                                                            I am using it and I love it :)

                                                                                                                            • QuiCasseRien a month ago

                                                                                                                              interesting tool !

                                                                                                                              première fois que je vois qqch de cool sortir d'orange.

                                                                                                                            • maxmarrfun a month ago

                                                                                                                              [dead]

                                                                                                                              • joaopedroschmit a month ago

                                                                                                                                [dead]

                                                                                                                                • blueflow a month ago

                                                                                                                                  Is there any program code that is not based on plain text? Punch cards maybe? For the value of "plain text" that includes a programming language with its own syntax and grammar, like Hurl.