Skip to main content

GraphQL client in the terminal.

Project description

Build and execute GraphQL queries in the terminal.

This project is inspired by https://graphiql-online.com.

https://github.com/eerimoq/gqt/raw/main/docs/assets/showcase.gif

Installation

pip3 install gqt

It’s recommended to install bat for pretty output.

Controls

  • Press h or ? for help.

Examples

Set default GraphQL endpoint:

export GQT_ENDPOINT=https://mys-lang.org/graphql

Interactively create a query and execute it:

gqt
{
    "statistics": {
        "numberOfGraphqlRequests": 3
    }
}

Repeat last query:

gqt -r
{
    "statistics": {
        "numberOfGraphqlRequests": 4
    }
}

Print the query (and variables) instead of executing it:

gqt -q
Query:
query Query {
  statistics {
    numberOfGraphqlRequests
  }
}

Variables:
{}

YAML output:

gqt -y
statistics:
  numberOfGraphqlRequests: 8

Name queries:

gqt -n stats -y
statistics:
  numberOfGraphqlRequests: 8
gqt -n time -y
standardLibrary:
  package:
    latestRelease:
      version: 0.20.0
gqt -n stats -y -r
statistics:
  numberOfGraphqlRequests: 9
gqt -n time -y -r
standardLibrary:
  package:
    latestRelease:
      version: 0.20.0

List cached queries:

gqt -l
Endpoint                      Query name
----------------------------  ------------
https://mys-lang.org/graphql  <default>
https://mys-lang.org/graphql  time
https://mys-lang.org/graphql  stats

Make arguments variables by pressing v and give them as -v <name>=<value> on the command line:

gqt -v name=time -y
standardLibrary:
  package:
    latestRelease:
      version: 0.20.0
gqt -r -q
query Query($name: String!) {
  standardLibrary {
    package(name: $name) {
      latestRelease {
        version
      }
    }
  }
}

Print the schema:

gqt --print-schema
type Query {
  standardLibrary: StandardLibrary!
  statistics: Statistics!
  activities: [Activity!]!
}

type StandardLibrary {
  package(name: String!): Package!
  packages: [Package!]
  numberOfPackages: Int
  numberOfDownloads: Int
}
...

Enpoint option and bearer token in HTTP auth header:

gqt -e https://api.github.com/graphql -H "Authorization: bearer ghp_<value>"

Ideas

  • Press c for compact view, hiding fields that are not selected.

  • Search:

    Press / to search for visible fields. Press <Up> and <Down> to move to the previous and next search hit. Highlight all hits. Press <Enter> to end the search and move the cursor to the current hit. Press <Esc> to abort the search and restore the cursor to its pre-search position. Show number of hits.

    ╭─ Query
    │ ▼ search
    │   ▶ Book
    │     ■ title
    │   ▶ Author
    │     ■ name
    │ ▶ film
    │ ▶ films
    
    /fil                                                1 of 2 matches
  • Alias?

    • Press a to create an alias.

    • Press d to delete an alias.

    smallPicture and mediumPicture are aliases of picture.

    ╭─ Query
    │ ▶ Book
    │   ▶ picture
    │   ▼ smallPicture: picture
    │     ■ width: 320
    │     ■ height: 240
    │   ▼ mediumPicture: picture
    │     ■ width: 800
    │     ■ height: 600
  • Optionally give schema path on command line. For endpoints that does not support schema introspection.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gqt-0.124.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

gqt-0.124.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file gqt-0.124.0.tar.gz.

File metadata

  • Download URL: gqt-0.124.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for gqt-0.124.0.tar.gz
Algorithm Hash digest
SHA256 621dfafa11fbaed310d45a05a3e26f435d5ca2eee7ed70f98a54ce310ed8dd35
MD5 7f844595d08bbdd27c274831b0df8713
BLAKE2b-256 741f1077fc01850989fb0cb058586b9d6f0d78f22d36de060c5d41a4b92694ff

See more details on using hashes here.

File details

Details for the file gqt-0.124.0-py3-none-any.whl.

File metadata

  • Download URL: gqt-0.124.0-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for gqt-0.124.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0e64c42f4a4da76020b61b4f315ca9ed06c4109d04b100cff46550a89f74a48
MD5 c71e791c2df46d898aaa5b317b0c2169
BLAKE2b-256 ddf9be3a0bd61fac7a1389ce0fbb55c22f0a914ea1e51f9430d4bbca00517d87

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page