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

  • Navigate with arrow keys.

  • Select fields with <Space>.

  • Toggle between argument selection and its value with <Tab>.

  • End with <Enter>.

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 instead of executing it:

$ gqt -q
{statistics {numberOfGraphqlRequests}}

YAML output:

$ gqt -y | bat -l yaml
statistics:
  numberOfGraphqlRequests: 8

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
}
...

Known issues

  • Arguments does not work very well.

  • Scrolling does not work.

  • Fragments and unions are not implemented.

  • Mutations and subscriptions are not implemented.

  • And much more.

Ideas

  • Show GraphQL API documentation.

  • Mutations?

  • Subscriptions?

  • Arguments and variables:

    ■: not null
    □: null
    $: variable

    Scalar example:

    ╭─ Query
    │ ▼ standard_library
    │   ▼ package
    │     ■ name: ""
    │     □ name
    │   ▶ packages

    List example:

    ╭─ Query
    │ ▼ item
    │   □ kinds:
    │   ■ kinds2:
    │     [0] ■ a: "foo"
    │         ■ b: "eq"
    │         ■ c:
    │           [0] ■ a: "x"
    │               ■ b: "y"
    │           [1]
    │     [1] ■ a: "bar"
    │         ■ b: "ne"
    │         □ c:
    │     [2]

    Variables example:

    ╭─ Query
    │ ▼ standardLibrary
    │   ▼ package
    │     $ name: name
    │     ■ id: 5
    │     $ kind: kind
    │     □ name
    │   □ numberOfDownloads
    │ ▶ statistics
    
    ╭─ Variables
    │ name: "foo"
    │ kind:
    │   [0] ■ a: "bar"
    │       ■ b: "ne"
    │       □ c:
    │   [1]

    Print the variables:

    $ gqt -v
    {"name": "foo", "kind": [{"a": "bar", "b": "ne"}]}

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.49.0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

gqt-0.49.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gqt-0.49.0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for gqt-0.49.0.tar.gz
Algorithm Hash digest
SHA256 bf2a83b6cf7804882a7f2fa6c6f7c91cd8a81762fde80371cd56f7aacc9f7a11
MD5 d2ea53ebe68093f14a217b2e995eb840
BLAKE2b-256 43df9812e8401f084b1353c60f55e122890b7b193bfe56a34e564a6095716c6b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gqt-0.49.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for gqt-0.49.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a31f4ed2fe58ed8d803e985230b7c8a50fa2d3a986180ba56215dbb0a2c62030
MD5 a57db7e8775f249b1f6c16445ba67bcc
BLAKE2b-256 b485cdafe5f5bc369e57523909e0f8cc114f2bd2bccd307f980002c49b824de0

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